Recommandations pour l'élaboration de documents Sweave
Question
Je cherche à rationaliser mon création de documents de Sweave, et je voudrais entendre sur les configurations actuelles des gens. Je me sens comme le Saint-Graal va quelque chose comme ceci:
- Modification du code Rnw sur une moitié de la écran
- compilable KeyBinding simples Document Sweave et fonctionne pdflatex
- Voir le PDF sur l'autre moitié de l'écran; une fois que compilé, PDF est actualisé et centré autour de la partie du document que vous modifiez
- Si la compilation contient des erreurs, remplacer le PDF avec les résultats de la compilation (par exemple les erreurs de latex ou des erreurs Sweave)
Je suppose / espère que la solution fait partie Emacs / ESS combiné avec un code pour le profil Emacs et / ou un bon Makefile. Mais je voudrais vraiment entendre parler de façon préférée de tout le monde de créer Sweave et / ou des documents en latex.
La solution
Quelques autres utilisateurs R j'ai parlé d'utiliser une configuration « un répertoire par projet », et un Makefile simple. Comme vous le soupçonnez, qui fonctionne bien avec Emacs / ESS.
J'ai tendance à appeler juste un simple script shell sweave
que je l'ai déjà écrit avant R CMD Sweave 'a été ajouté (que je trouve recréer ou copier le Makefile peu attrayant, YMMV). Je l'utilise aussi Emacs et une visionneuse PDF auto-rafraîchissant (comme okular
ou kpdf
). Emacs23 peut afficher un aperçu des fichiers PDF directement aussi, mais je dois encore passer mon flux de travail à ce sujet.
edd@ron:~$ 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
Autres conseils
Vous pouvez faire tout ce que vous proposez là avec le plug-in pour Eclipse StatET. Voilà ce que je l'utilise pour le développement Sweave; il comprend à la fois latex et R très bien, y compris la coloration syntaxique, etc.
Vous pouvez l'obtenir ici: http://www.walware.de/goto/statet.
Longhow Lam a écrit un guide agréable: http://www.splusbook.com/Rintro /R_Eclipse_StatET.pdf.
J'utilise TeXShop sur OS X pour produire tous mes rapports et Sweave LATEX . Pour moi, un nouveau pipeline de compilation est aussi simple que l'ajout d'un fichier, appelé Sweave.engine
à ~/Library/TeXShop/Engines/
qui contient les éléments suivants:
#!/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 est maintenant une méthode au choix de la compilation d'un document à l'intérieur TeXShop. Je peux définir en tant que la valeur par défaut pour un document en ajoutant le bang hachage TeX suivant au début du fichier:
% !TEX TS-program = Sweave
frapper Cmd-T va composer le document- le pdf sort automatiquement dans une fenêtre séparée. TeXShop intègre également SyncTeX technologie pour un Cmd-clic dans la source Rnw mettra en évidence la sortie correspondante dans la fenêtre PDF et un Cmd-clic dans la fenêtre PDF souligneront l'entrée correspondante dans la source Rnw.
TeXShop est mac-only, mais un grand Qt / clone basé poppler, TeXworks , est disponible pour Linux, Windows et Mac et prend en charge un grand nombre de même features-- y compris TeX hachage bangs et SyncTeX. TeXworks a atteint un niveau de maturité où il est inclus dans la version 2.8 du MikTeX package pour Windows.
rstudio .
Je suis un fan de Emacs et TeXShop comme mentionné dans les réponses précédentes.
Cependant, rstudio commence à me gagner. Il est un IDE dédié rapide amélioration pour R. Certainement la peine de vérifier.
J'aime encore faire certaines tâches de développement R uniquement dans la norme R IDE pour mac. Mais pour les documents Sweave et certains devel R associé en même temps, rstudio gagne. Il fonctionne avec pratiquement zéro peaufinage. Je ne sais pas sur les caractéristiques le format PDF dans la seconde moitié de la question initiale.
Une chose qui m'a sauvé quelque temps est le mode « auto-insertion » dans emacs. Je l'ai mis en place afin que chaque fois que j'ouvrir un nouveau fichier .rnw, emacs configure automatiquement un modèle de document de base et tout ce que je dois faire est de commencer à écrire mon rapport.
Mise à jour: Je suis passé loin de insertion automatique. Maintenant, j'utilise l'approche "template.el".
J'utilise le « un répertoire par projet » et l'approche Makefile ainsi. Je ajoute aussi des commandes pour créer une sortie en HTML, qui peuvent ensuite être convertis en OOo et MS Word, en utilisant TTH. Ceci est important pour moi depuis que beaucoup de mes collaborateurs sont les utilisateurs de MS Office et sont résistants à l'utilisation de la sortie PDF. J'ai appris beaucoup de choses sur la façon de faire de la twiki de Frank Harrell à Vanderbilt.
Personnellement, j'utilise vim comme éditeur de choix et en cours d'exécution make à partir de là est tout à fait simple, comme il est d'Emacs.