RStudio fournit un moyen à un bouton pour produire un fichier PDF à partir de la source LaTeX + R avec Knitr. Il semble idéal pour faire des recherches reproductibles. Et j'essaye de configurer mes Emacs pour:
- à gauche tampon Code LaTeX + R à la manière de Knitr;
- au tampon de droite Aperçu de la sortie PDF;
- une combinaison de touches pour la compilation.
Si c'est possible: comment dois-je configurer cela, s'il vous plaît?
(ESS fonctionne bien, mais je ne sais pas comment configurer Knitr-way et un bouton pour la compilation.)
rmarkdown::render
(viashell-command
) sur le courantbuffer-file-name
, qui mettra à jour le pdf dans l'autre fenêtre.Réponses:
MISE À JOUR
Depuis ESS 19.04, les bibliothèques
ess-noweb
etess-swv
sont obsolètes:Par conséquent, ma réponse originale (ci-dessous) ne s'applique plus. Les fonctionnalités que ces bibliothèques fournissaient auparavant sont désormais fournies par polymode, et la configuration est plus simple. Pour obtenir un support minimal, tout ce dont vous avez besoin est d'installer les packages
ess
,polymode
etpoly-R
(depuis MELPA, ou depuis la source si c'est comme ça que vous roulez).C'est ça! Maintenant, si vous ouvrez un
Rnw
fichier, vous devriez voir lePM-Rnw
drapeau dans la modélisation, et il y aura unPolymode
menu en haut. Vous pouvez tisser votre fichier dans un.tex
fichier viaM-n w
(ou le menu polymode) et l'exporter vers.pdf
viaM-n e
(ou le menu). Vous serez invité à entrer un exportateur la première fois que vous effectuez cette opération; Je viens de choisirknitr
.REMARQUE: l'export (
M-n e
) exécute automatiquement votre code, génère le pdf et l'affiche, d'un seul coup. Je n'ai pas pu obtenir ce comportement "en un clic" avec l'ancienne version décrite ci-dessous.Les fichiers générés auront le mot
-woven
et seront-exported
ajoutés. Si vous n'aimez pas cela, vous pouvez personnaliser les optionspolymode-weaver-output-file-format
etpolymode-exporter-output-file-format
.Le processus est similaire pour les fichiers RMarkdown (
.Rmd
).Tous les détails sont fournis dans le manuel du polymode
Réponse originale (obsolète après ESS 19.04)
Trois variables doivent être définies:
ess-swv-pdflatex-commands
, dans le groupe de personnalisationess-sweave
doit avoir "pdflatex" comme première commande. c'est-à-dire qu'il devrait ressembler à quelque chose comme:("pdflatex" "texi2pdf" "make")
ess-swv-processor
, dans le groupe de personnalisationess-R
, doit être la valeur"knitr"
ess-pdf-viewer-pref
dans le groupe de personnalisationess
à"emacsclient"
. Cela suppose que vous exécutez le serveur emacs ou qu'emacs s'exécute en mode --daemon. Vous devriez également utiliser des outils pdf si possible, car il est de loin préférable à la visionneuse pdf Emacs intégrée.J'utilise un hook pour ajouter deux raccourcis clavier pour appeler BibTeX et texi2pdf:
Une fois cela fait,
M-n s
va tricoter votre document,M-n b
le bibtex etM-n P
le traitera avec pdflatex.Notez qu'il n'y a pas de moyen simple pour Emacs de savoir quand le tricot est terminé, vous ne pouvez donc pas le configurer pour tricoter et latex en une seule étape; vous devez déclencher manuellement pdflatex après avoir vu le tricot terminé.
Étant donné les multiples étapes ici - Rnw -> Latex -> PDF, je ne pense pas que vous puissiez demander à Synctex de conserver vos fichiers pdf et Rnw pour faire défiler ensemble, mais je serais ravi d'avoir tort.
Quant à la disposition des fenêtres, je ne peux jamais les faire rester là où je les veux. Donc, pour compenser, je suis devenu assez habile pour mélanger les fenêtres et les tampons lorsque j'en ai besoin;)
Yihui a posté une courte vidéo sur le site de knitr démontrant cela.
la source
Il s'agit d'une solution tout-en-un. Il créera et affichera un PDF à partir d'un Rnw .
Plus précisément, il:
La procédure tente de quitter avec des messages informatifs si l'une des étapes ci-dessus échoue.
Une instance R sera ouverte, si nécessaire, ou l'instance actuelle est utilisée pour montrer le processus de tricotage.
La sortie LaTeX est envoyée au tampon "TeX-output", qui est également sauté en cas d'erreur de compilation.
Usage
Meta- x
knit-me
pour créer et visualiser le PDF.Meta- x
knit-me-clear
pour supprimer les fichiers intermédiaires LaTeX etknit-me
.La bibliographie nécessite le package "biblatex", c'est-à-dire:
Le nom du bib-engine (par exemple
bibtex
,biber
) est obtenu en analysant lebackend
mot - clé.\addbibresource
La commande est analysée pour obtenir le fichier de bibliographie: si ellefoo.bib
est plus récente que le fichier TeX, le moteur bib est exécuté. A cet égard, seule la première\addbibresource
commande est prise en compte s'il y en a plusieurs.Personnaliser
Pour visualiser réellement le PDF, définissez le chemin exécutable du visualiseur avec:
Utilisez éventuellement une visionneuse comme SumatraPDF , qui met automatiquement à jour le PDF lors de la recompilation et ne bloque pas le fichier ouvert empêchant de nouvelles compilations.
Le moteur LaTeX par défaut est
pdflatex
(supposé dans le chemin actuel). Personnalisez avec:Bien sûr, vous voudrez peut-être lier
knit-me
etknit-me-clear
à certaines touches pratiques.Remarques
Testé sous Windows MiKTeX, avec
biber
etbibtex8
backends et GNU Emacs 25.1.1.Code Elisp
la source