lunes, 7 de septiembre de 2009

Lyx y Sweave

Lyx es un procesador de texto que promueve la edición de textos basándose en la estructura del documento, y no sólamente en su apariencia. En la terminología anglosajona ésto es lo que se denomina WYSIWYM (What You See Is What You Mean), frente al enfoque adoptado por otros procesadores, como Word u OpenOffice, que se encuadran más dentro del concepto WYSIWYG (What You See Is What You Get).

¿Qué significa ésto? Básicamente, que no tenemos que preocuparnos por editar lo que escribimos. Lyx, de manera inteligente, asume el rol de editor del documento y nosotros sólo tenemos que definir qué parte del texto es qué. De esta manera, si a Lyx le decimos que una parte del texto es el resumen, no hace falta darle un formato determinado, Lyx lo hace por nosotros.

En Lyx tenemos distintas clases que vienen establecidas por defecto. Las clases definen los argumentos de ese documento. Así tenemos una clase que es 'Artículo', otra que es 'Libro', otra 'Carta', y así sucesivamente. Dentro de cada clase hay distintos ambientes (Environments). Un ambiente es una parte del texto que va a tener un determinado formato, por ejemplo: un título, un resumen, un autor, una sección, las referencias, etc.

Principales diferencias de Lyx con otros editores de texto
  1. Una de las principales características de Lyx es que no se pueden introducir espacios de más con el tabulador o el Enter. Esto es porque Lyx asume que nosotros no debemos dejar espacios para separar una determinada sección de otra. De nuevo, esta es la misión del programa. Así se busca que el usuario se centre en los contenidos mientras que el programa se encarga del formato.
  2. Las secciones y subsecciones, así como los listados, se enumeran automáticamente si introducimos o eliminamos cualquier elemento nuevo en el texto.
  3. Las figuras se ajustan al texto de manera automática. No tenemos que preocuparnos por su ubicación exacta y ésta se actualiza si modificamos el texto asociado.
Cómo instalar Lyx

Lyx es un editor de texto basado en Latex. Por tanto, para instalar Lyx en Ubuntu es conveniente que instalemos todos los paquetes relacionados con Latex. Si queremos que funcionen los acentos cuando escribamos en Español es importante que vayamos a Documents-Settings y especifiquemos que Language = Spanish y Encoding = utf8.

Lyx y Sweave

Una de las ventajas principales de Lyx (y por la cúal he empezado a aprender a utilizarlo) es que funciona bien con Sweave, un programa que permite escribir y decodificar código en R dentro de Lyx. Esto es de gran utilidad a la hora de escribir manuales de R o informes que contengan código o el resultado de la implementación de un código en R. Podemos elegir si queremos que el código que escribimos en el documento se vea, que sólamente se vea el resultado o ambos. Al actualizar cualquier parte del código se actualizan automáticamente los resultados obtenidos. Sin embargo, si el código contiene algún error, entonces no es posible decodificar y, por tanto, exportar a pdf o a cualquier otro formato, el documento. en cuestión Esto actúa en cierta manera como control de calidad del código que escribamos dentro del documento. Al escribir manuales de R en OpenOffice me he encontrado a veces con errores que se hacen patentes cuando los alumnos tratan de implementar el código, simplemente porque no he verificado correctamente todo el código al escribir el manual. Esto no pasa con Lyx.

Instalar Sweave

Para instalar Sweave basta con seguir las instrucciones dadas en INSTALL en la siguiente dirección:

http://cran.r-project.org/contrib/extra/lyx/

En Linux no hay que preocuparse mucho por los pasos 4 y 6. Basta con mirar que, una vez que se ha reconfigurado Lyx (Tools-Reconfigure), tengamos en Documents-Settings-Document class la clase 'article (Sweave-noweb)'.

Para empezar a utilizar código en R dentro de los documentos conviene empezar con algo que ya esté escrito, para ver cómo hay que empezar y finalizar las líneas de código. Encontraremos algunos ejemplos en la página anterior (Sweave-test-1.lyx y test.lyx).
En esencia, para escribir algo de código dentro de un documento de Lyx, la estructura que hay que seguir es la siguiente:

<<>>=
hist(rnorm(100))
@


Se puede encontrar más información y algunos ejemplos de manuales de R escritos en Lyx en la página de Duncan J. Golicher.

3 comentarios:

Antonio J. Pérez Luque dijo...

Muy bueno Luis,
me parece una herramienta muy útil. Ademas ahora que empiezo a tratar con R y he visto como muchas veces ocurre que copias código y te da error (por falta de una coma, o no cerrar bien el paréntesis, etc), viene bien saber que herramientas facilitan la tarea.
Gracias por la información

jose dijo...

Hola. Estoy empezando a trabajar con Lyx , y quisiera usar Sweave, pero resulta que cuanto uso la clase article sweave no web, si pongo tildes y eñes no me compila.¿alguna idea?

luiscayuela dijo...

Hola Jose,

tienes que ir a Documents-Settings y establecer como "Encoding" el Unicode(utf8). Espero que esto solucione tu problema.

Buscar entradas