2009-09-04 14 views
18

Estoy buscando optimizar mi creación de documento Sweave, y me gustaría saber acerca de las configuraciones actuales de las personas. Siento que el Santo Grial es algo como esto:Recomendaciones para desarrollar documentos Sweave

código
  • Edición Rnw en una mitad de la pantalla
  • combinación de teclas solo compila documento Sweave y corre pdflatex
  • Ver PDF en la otra mitad de la pantalla; vez compilado, PDF se actualiza y centra alrededor de la parte del documento que se está editando
  • Si la compilación tiene errores, vuelva a colocar el PDF con los resultados de la compilación (por ejemplo, errores de látex o errores Sweave)

Estoy adivinando/esperando que la solución sea parte de Emacs/ESS combinada con algún código para el perfil de Emacs y/o un bonito Makefile. Pero me gustaría conocer la forma preferida de todos de crear documentos Sweave y/o Latex.

Respuesta

9

Algunos otros usuarios de R con los que hablé usan una configuración de 'un directorio por proyecto' y un archivo Makefile simple. Como sospechabas, eso funciona bien con Emacs/ESS.

Tiendo a llamar simplemente a una secuencia de comandos de shell sweave que escribí antes de que se agregara 'R CMD Sweave' (como me parece volver a crear o copiar el Makefile poco atractivo, YMMV). También uso Emacs y un visor de pdf auto refrescante (como okular o kpdf). Emacs23 también puede previsualizar archivos pdf directamente, pero todavía tengo que cambiar mi flujo de trabajo a eso.

[email protected]:~$ cat bin/sweave 
#!/bin/bash -e 

function errorexit() { 
    echo "Error: $1" 
    exit 1 
} 

function filetest() { 
    if [ ! -f $1 ]; then 
     errorexit "File $1 not found" 
    fi 
    return 0 
} 


if [ "$#" -lt 1 ]; then 
    errorexit "Need to specify argument file" 
fi 


BASENAME=$(basename $1 .Rnw) 

RNWFILE=$BASENAME.Rnw 
filetest $RNWFILE 
echo "library(tools); Sweave(\"$RNWFILE\")" \ 
     | R --no-save --no-restore --slave 

LATEXFILE=$BASENAME.tex 
filetest $LATEXFILE && pdflatex $LATEXFILE 
6

Puede hacer todo lo que sugiera con el plugin StatET para Eclipse. Eso es lo que uso para el desarrollo de Sweave; entiende muy bien tanto el látex como el R, incluido el resaltado de sintaxis, etc.

Puede obtenerlo aquí: http://www.walware.de/goto/statet.

Longhow Lam ha escrito una buena guía: http://www.splusbook.com/Rintro/R_Eclipse_StatET.pdf.

http://www.statalgo.com/?p=93

+2

Estoy de acuerdo. Sweave, StatET y Eclipse funcionan bien juntos. Escribí una publicación describiendo una forma de configurar Sweave con Eclipse http://bit.ly/adfhZ1 –

+0

(el enlace splusbook está roto. Sin embargo, lo busqué en Google y la siguiente alternativa, aparentemente equivalente, funcionó para mí: http: // www. .splusbook.com/RIntro/R_Eclipse_StatET.pdf) – isomorphismes

1

uso el "proyecto de un directorio-per-" y el enfoque Makefile así. También incluyo comandos para crear resultados en HTML, que luego se pueden convertir en OOo y MS Word, usando tth. Esto es importante para mí, ya que muchos de mis colaboradores son usuarios de MS Office y son resistentes al uso de la salida de PDF. Aprendí mucho sobre cómo hacer esto con el twiki de Frank Harrell en Vanderbilt.

Personalmente uso gvim como editor de mi elección y ejecuto haciendo que sea bastante simple, ya que es de Emacs.

6

Uso TeXShop en OS X para producir todos mis informes LaTeX y Sweave. Para mí, una nueva tubería compilación es tan simple como añadir un archivo, llamado Sweave.engine a ~/Library/TeXShop/Engines/ que contiene lo siguiente:

#!/usr/bin/env Rscript 
args <- commandArgs(T) 

fname <- strsplit(args[1],'\\.')[[1]][2] 

Sweave(paste(fname,'Rnw',sep='.')) 

system(paste('pdflatex',paste(fname,'tex',sep='.'))) 

Sweave es ahora un método de selección de compilar un documento en el interior TeXShop.Puedo configurarlo para que sea el predeterminado para un documento, añadiendo la siguiente TeX de hash-bang a la parte superior del archivo:

% !TEX TS-program = Sweave 

Golpear Cmd-T se componga el documento- el pdf aparece automáticamente en una separada ventana. TeXShop también incorpora la tecnología SyncTeX, por lo que un Cmd-Click en la fuente Rnw resaltará la salida correspondiente en la ventana PDF y un Cmd-Click en la ventana PDF resaltará la entrada correspondiente en la fuente Rnw.

TeXShop es mac pero un gran clon basado en Qt/poppler, TeXworks, está disponible para Linux, Windows y Mac y es compatible con muchas de las mismas características, incluyendo TeX hash-bangs y SyncTeX. TeXworks ha alcanzado un nivel de madurez en el que se incluye en la versión 2.8 del paquete MikTeX para Windows.

+0

¡Me gusta el uso directo de Rscript! Tantas soluciones invocan un intérprete de comandos para invocar a R ... Para el registro, 'strsplit' y' paste' para manejar extensiones de nombre de archivo no es necesario - tanto 'Sweave' como' pdflatex' agregan automáticamente la extensión. –

+0

Creo que era necesario en el momento en que escribí esa publicación como TeX Shop pasó el nombre completo, 'File.Rnw' al motor. 'Sweave' estaría bien con eso, pero' pdflatex' se ahogaría. – Sharpie

+0

Entonces, dices que tienes un clic de cmd entre tus archivos .Rnw y .pdf. Tuviste que pasar por estos aros también: http://cameron.bracken.bz/synctex-with-sweavepgfsweave-in-texshoptexworks –

2

Una cosa que me ha ahorrado algo de tiempo es el modo de "inserción automática" en emacs. Lo tengo configurado para que cada vez que abra un nuevo archivo .rnw, emacs configure automáticamente una plantilla de documento básica y todo lo que necesito hacer es comenzar a escribir mi informe.

Actualización: He cambiado desde la inserción automática. Ahora uso el enfoque "template.el".

3

Probar RStudio.

He sido un fan de Emacs y TeXShop como se menciona en respuestas anteriores.

Sin embargo, Rstudio está empezando a convencerme. Es un IDE dedicado que mejora rápidamente para R. Definitivamente vale la pena echarle un vistazo.

Todavía me encanta hacer ciertas tareas de desarrollo R-only en el standard R IDE para mac. Pero para los documentos Sweave y algunos R devel asociados al mismo tiempo, RStudio gana. Funciona con prácticamente cero ajustes. No estoy seguro acerca de las características relacionadas con PDF en la última mitad de la pregunta original.