Sweave: diferència entre les revisions

1.376 octets eliminats ,  6 juny 2005
Línia 96: Línia 96:
== Procesamiento ==
== Procesamiento ==


El procesamiento de un archivo de Sweave se compone básicamente de dos pasos:
El procesamiento (compilado) de un archivo de Sweave se compone básicamente de dos pasos:


* La función Sweave() de R, que evaluará los ''chunks'' con código de R y convertirá el archivo '''.Rnw''' a un archivo '''.tex''' convencional.
* La función Sweave() de R, que evaluará los ''chunks'' con código de R y convertirá el archivo '''.Rnw''' a un archivo '''.tex''' convencional.
Línia 102: Línia 102:
* Comipilar el documento '''.tex''' para obtener, como es habitual en [[Latex|LaTeX]], archivos '''.dvi''', '''.ps''' o '''.pdf'''.
* Comipilar el documento '''.tex''' para obtener, como es habitual en [[Latex|LaTeX]], archivos '''.dvi''', '''.ps''' o '''.pdf'''.


En sistemas M$ hay que realizar los dos pasos de forma independiente, ya sea con [[Emacs]] o con [http://www.winedt.com WinEdt].


=== Procesamiento convencional con [[Emacs]] bajo GNU/Linux ===
En sistemas GNU/Linux, aunque también es posible realizar los pasos por separado, ambas tareas pueden automatizarse con el sistema que se explica a continuación.


Antes de poder procesar documentos de Sweave hay que realizar el siguiente procedimiento, que deberá llevarse a cabo sólo '''una vez''' en cada ordenador y que permitirá ejecutar la función Sweave() de R sin necesidad de ejecutar manualmente el programa:
=== Automatización del proceso con [[Emacs]] bajo GNU/Linux ===
 
Antes de poder procesar automáticamente documentos de Sweave hay que realizar el siguiente procedimiento, que deberá llevarse a cabo sólo '''una vez''' en cada ordenador y que permitirá ejecutar la función Sweave() de R sin necesidad de ejecutar manualmente el programa:


* Descargar este [http://acrida.2mydns.com/wikitraba/arxius/Sweave.sh '''shell script'''], copiarlo a la ubicación ''/usr/local/bin/'' y desde una ventana de terminal ejecutar:
* Descargar este [http://acrida.2mydns.com/wikitraba/arxius/Sweave.sh '''shell script'''], copiarlo a la ubicación ''/usr/local/bin/'' y desde una ventana de terminal ejecutar:
Línia 127: Línia 130:
  make -k {Ret}
  make -k {Ret}


Este procedimiento va a generar dos archivos con el documento final, un '''.pdf''' y otro '''.ps'''. Este último formato presenta la ventaja de ser visualizable con [http://www.gnu.org/software/gv/ Gnome Ghost Viewer], que actualiza directamente la vista de los archivos '''.ps''' cuando estos cambian (es decir cada vez que se produce una nueva compilación) sin necesidad de tener que cerrar y volver a abrir el programa. Para que esto suceda, hay que marcar la opción ''Mira un fitxer'' en las preferncias del programa.
Este procedimiento va a generar dos archivos con el documento final, un '''.pdf''' y otro '''.ps'''. El [http://acrida.2mydns.com/wikitraba/arxius/Makefile fichero Makefile] descargado es fácilmente costumizable para que cree sólamente uno de los dos ficheros resultado.
 
=== Procesamiento alternativo con [[Emacs]] bajo GNU/Linux ===
 
El sistema descrito con anterioridad presenta la gran ventaja de ejecutar todo el proceso con una única orden, lo que facilita la realización de compilaciones sucesivas para ir comprobando cómo está quedando nuestro documento, y detectar de forma temprana los errores en el código de R.
 
Sin embargo, presenta también algún inconveniente, como por ejemplo el hecho que no se genera de forma visible un fichero '''.tex''' que en ocasiones sería necesario recompilar para obtener, por ejemplo, una bibliografía con el sistema BibTeX ('''leo, tu sabes pq ocurre esto?''').
 
Leo: me he revisado el log del compilado y lo ultimo que hace es (rm elarchivo.tex elarchivo.dvi) es decir que se los carga, seguramente el makefile o tal vez el mismo emacs por considerarlos archivos intermedios. el programa de makefile nunca le dice que se carge nada, aunque texi2dvi parece que ya se ejecuta tantas veces como haga falta para crear los indices y lar referencias cruzadas:
The `texi2dvi' command automatically runs both TeX and `texindex' as
many times as necessary to produce a DVI file with sorted indices and
all cross-references resolved.  It is therefore simpler than manually
executing the `tex'--`texindex'--`tex'--`tex' sequence described in the
previous section.
 
Acrida: ok, ferpecto, esta tarde prueba a ver si hace bien lo de bibtex y arreglo el articulo para explicarlo bien.
 
 
Para poder obtener el archivo '''.tex''' hay que descomponer el proceso en sus dos pasos naturales:
 
* Ejecutar en R (directamente en el programa o mandando la orden desde [[Emacs]]), como se explica en el [[R#GNU.2FEmacs_y_XEmacs|artículo correspondiente]]:
 
Sweave("/rutacompleta/nombredelarchivo.Rnw")
 
* Compilar con [[Latex|LaTeX]] el archivo '''.tex''' resultante de la operación anterior. Pueden realizarse tantas compilaciones como sean necesarias para obtener el resultado deseado. Las compilaciones se realizan por el procedimiento habitual de [[Latex#Sistemas_GNU.2FLinux|LaTeX]] explicado en el [[Latex#Sistemas_GNU.2FLinux|artículo correspondiente]].
 
=== Procesamiento re-alternativo con [[Emacs]] bajo GNU/Linux ===
 
A completar mediante el link:


[https://stat.ethz.ch/pipermail/ess-help/2004-September/002108.html Otro enfoque, este toma los nombres del buffer]
Se acpnseja visualizar ambos tipos de archivos con el programa [http://www.gnu.org/software/gv/ Gnome Ghost Viewer] (es el visualizador por defecto de ficheros '''.ps'''), que actualiza directamente la vista de los archivos cuando estos cambian (es decir cada vez que se produce una nueva compilación) sin necesidad de tener que cerrar y volver a abrir el programa. Para que esto suceda, hay que marcar la opción ''Mira un fitxer'' en las preferencias del programa.


=== Procesamiento con [[Emacs]] o [http://www.winedt.com/ WinEdt] bajo M$ ===
Todo lo anterior tiene la ventaja de permitir compilar archivos Sweave con una sola orden, lo que facilita la realización de compilaciones sucesivas para ir comprobando cómo está quedando nuestro documento, y detectar de forma temprana los errores en el código de R.  


En sistemas M$ no se pueden automatizar los dos pasos necesarios para la genración de documentos Sweave, por lo que deberán realizarse por separado:
La compilación realizada con el procedimiento descrito tiene además otras ventajas, como por ejemplo que compila tantas veces como sea necesario el archivo '''.tex''', lo que evita tener que recompilar manualmente los archivos que contienen, por ejemplo, referencias bibliográficas tal y como se explica en el [[Latex#Bibliograf.C3.ADas_.28BibTex.29 | artículo correspondiente]].


* Ejecutar en R (directamente en el programa o mandando la orden desde un editor):
* Ejecutar en R (directamente en el programa o mandando la orden desde un editor):