You are on page 1of 5

Tutorial de Sweave

Compilacin y generacin de *.pdf desde la terminal


I.D. Serna-Surez 3 de octubre de 2012

Este documento es un muy pequeo (y probablemente denso) tutorial de como


A utilizar Sweave si no se puede congurar el IDE de L TEX a tiempo. Es por tanto

una opcin de emergencia y se recomienda leer y explorar de manera detallada la documentacin de la IDE de preferencia antes de aplicar lo aqu mostrado. Por favor leer primero la ayuda de Sweave en *.pdf que acompaa el resto de archivos adjuntos para entender lo que es el *.Rnw. De manera sucinta, lo que hay que hacer es abrir la terminal del sistema operativo o de R, ubicar el directorio de trabajo como el directorio donde se encuentra el archivo, ejecutar Sweave sobre el archivo *.Rnw y nalmente ejecutar la herramienta que incluyen las distribuciones de R para generar un *.pdf a partir de un *.tex. Cualquier pregunta, no duden en contactarme.
A Se recomienda primero ver que opciones tiene su IDE de L TEX para la compilacin del *.Rnw.

En LYX slo es ir a Herramientas Gestin de archivos Convertidores, tal como muestro en la Figura 1. En TEXMaker es en la seccin de comandos de las opciones. Les dejo un tutorial que encontre para los que nos gusta el TEXMaker para editar los *.tex. Esto es slo para ser conscientes de que est haciendo la IDE, en realidad, por ejemplo en el caso de LYX, lo nico que se necesita hacer es cargar el mdulo desde las opciones del documento y listo. Ya en este punto, si todo va bien y como debe ser, no necesita leer ms. Si hay problemas, y no tiene tiempo de congurar su IDE, bien pueda y continue. Lo que es claro y comn a todos los tutoriales y ayudas, es que lo importante es tener R instalado en el sistema de manera adecuada. Les comparto de manera textual lo que dice la ayuda de LYX: The Sweave module depends on the executable Rscript, so it has to be in the PATH variable of the system. It is usually not a problem for Linux and Mac OS users, but may be confusing to Windows users; if you do not understand what is PATH under Windows, you may either use the R script add-R-path-win.R in the repository
https://github.com/yihui/lyx to change it automatically (not recommended; you

should learn PATH anyway), or go to Tools Preferences Paths PATH prex to add the

F IGURA 1: Conguracin de los convertidores en LYX.

bin path of R (recommended), which is often like C:\Program Files\R\R-x.x.x\bin and you can nd it in R:
> R.home('bin') [1] "/usr/lib/R/bin"
A [...] Another dependency is introduced by the L TEX style le Sweave.sty which is

shipped with R under this path (it is not on CTAN):


> file.path(R.home('share'), 'texmf', 'tex', 'latex') [1] "/usr/share/R/share/texmf/tex/latex"

MikTEX users may add the texmf directory to the list of root directories in MikTEX through MikTEX settings. Further note that Sweave.sty depends on the fancyvrb package and may depend on ae. If LYX cannot nd Sweave.sty, it will directly copy from R, so the Sweave module works even if you do not know where is this style le. Ya con el Rscript.exe en el PATH, se puede ejecutar Sweave para compilar el *.Rnw. En la Figura 2 se muestra como hacer esto desde fuera de R, i.e. utilizando Rscript, pero se puede llamar

el comando desde R sin ningn problema1 . Tengan en cuenta que los comandos mostrados son para Linux, por lo cual deben cambiar R CMD por Rscript. . . Apenas lo pruebe en Windows les comento.
A L T

Al ejecutar Sweave se genera el *.tex deseado. En este punto se puede utilizar la IDE de EX predilecta recordando que el Sweave.sty debe ser reconocido por el gestor de paquetes

A L TEX en cuestin (En Windows es MikTEX, y como dice la ayuda de LYX arriba citada, generalmente tocar instalarlo manualmente). Para evitarnos el problema del *.sty, se puede

ejecutar el comando texi2pdf desde R. As, si se est dentro de R, tal como lo dice la ayuda de Sweave disponible en R, se debe teclear:
tools::texi2pdf(Nombre-del-archivo.tex)

Si lo que se quiere es declararlo desde la terminal:


R CMD texi2pdf Nombre-del-archivo.tex

Se recomienda evitar espacios en el nombre para evitar probemas. La Figura 3 muestra la salida completa. La ventaja de los comandos en terminal es que permiten hacer un script o una serie de
A comandos que pueden ser llamados por el IDE de L TEX (creando un comando personalizado o modicando uno existente). En mi caso, me interesaba hacer un script que pudiera ser

ejecutado directamente desde mi sistema operativo:


#!/bin/bash directorio="Insync/ivansern@gmail.com/LYX/" archivo="09-TAR-16sep2012-Foro1" cd ~ cd $directorio R CMD Sweave $archivo.Rnw R CMD texi2pdf $archivo.tex

Lo mismo se puede hacer desde un *.R (por supuesto, cambiando la sintaxis como es debido), que de hecho es lo que hace LYX con su lyxsweave.R. Les comparto todos los archivos que tengo incluyendo la salida *.Rnw que arroja LYX y el script en *.R que usa LYX para convertir el *.Rnw en *.tex. Lo estuve viendo y este programa se asegura que el Sweave.sty este disponible, ya sea porque ya existe o copiandolo desde las carpetas de instalacin de R. El que pueda probarlo directamente le agradezco nos comente como se comporta de manera aislada.
1

En ese caso se tendra que ejecutar Sweave(Nombre-del-archivo.Rnw).

F IGURA 2: Compilando el *.Rnw

F IGURA 3: Compilando el *.tex

You might also like