RStudio bietet eine Ein-Knopf-Methode zum Erstellen von PDF-Dateien aus LaTeX + R-Quellen mit Knitr. Es eignet sich hervorragend für reproduzierbare Untersuchungen. Und ich versuche, meinen Emacs für Folgendes zu konfigurieren:
- am linken Puffer LaTeX + R-Code in Knitr-Weise;
- am rechten Puffer Vorschau der PDF-Ausgabe;
- eine Tastenkombination zum Kompilieren.
Wenn es möglich ist: Wie soll ich das einrichten, bitte?
(ESS funktioniert einwandfrei, aber ich kann Knitr-way und One-Button-for-Compiling nicht einrichten.)
rmarkdown::render
(viashell-command
) auf dem aktuellenbuffer-file-name
, die das PDF im anderen Fenster aktualisiert.Antworten:
AKTUALISIEREN
Ab ESS 19.04 sind die Bibliotheken
ess-noweb
undess-swv
veraltet:Folglich gilt meine ursprüngliche Antwort (unten) nicht mehr. Die Funktionen, die diese Bibliotheken zur Verfügung stellen, werden jetzt im Polymode bereitgestellt, und die Konfiguration ist einfacher. Um minimale Unterstützung zu erhalten, alles , was Sie brauchen , ist die Installation
ess
,polymode
undpoly-R
Pakete (von Melpa, oder von der Quelle , wenn das ist , wie Sie rollen).Das ist es! Wenn Sie nun eine
Rnw
Datei öffnen , sollten SiePM-Rnw
die Markierung in der Modeline sehen und es wird einPolymode
Menü oben angezeigt . Sie können Ihre Datei.tex
überM-n w
(oder das Polymode-Menü) in eine Datei verweben und.pdf
überM-n e
(oder das Menü) in eine Datei exportieren . Wenn Sie dies zum ersten Mal tun, werden Sie aufgefordert, einen Exporteur anzugeben. Ich habe gerade gepflücktknitr
.HINWEIS: exporting (
M-n e
) führt Ihren Code automatisch aus, generiert das PDF und zeigt es auf einmal an. Ich konnte dieses "Ein-Klick" -Verhalten mit der alten, unten beschriebenen Version nicht erzielen.Die erzeugten Dateien werden das Wort haben
-woven
und-exported
angehängt. Wenn Ihnen das nicht gefällt, können Sie die Optionenpolymode-weaver-output-file-format
und anpassenpolymode-exporter-output-file-format
.Der Vorgang ist für RMarkdown-Dateien (
.Rmd
) ähnlich .Ausführliche Informationen finden Sie im Polymode-Handbuch
Ursprüngliche Antwort (veraltet nach ESS 19.04)
Drei Variablen müssen gesetzt werden:
ess-swv-pdflatex-commands
In der Anpassungsgruppeess-sweave
muss "pdflatex" als erster Befehl angegeben werden. Das heißt, es sollte ungefähr so aussehen:("pdflatex" "texi2pdf" "make")
ess-swv-processor
sollte in der Anpassungsgruppeess-R
der Wert sein"knitr"
ess-pdf-viewer-pref
in der Anpassungsgruppeess
zu"emacsclient"
. Dies setzt voraus, dass Sie den Emacs-Server ausführen oder dass der Emacs im --daemon-Modus ausgeführt wird. Sie sollten nach Möglichkeit auch PDF-Tools verwenden , da dies dem integrierten Emacs-PDF-Viewer weit vorzuziehen ist.Ich benutze einen Haken, um zwei Tastenkombinationen zum Aufrufen von BibTeX und texi2pdf hinzuzufügen:
Sobald dies erledigt ist,
M-n s
wird Ihr Dokument gestrickt,M-n b
bibtex undM-n P
mit pdflatex verarbeitet.Beachten Sie, dass es für Emacs keine einfache Möglichkeit gibt, festzustellen, wann das Stricken abgeschlossen ist. Sie können dies also nicht in einem Schritt auf Stricken und Latex einstellen. Sie müssen pdflatex manuell auslösen, nachdem Sie gesehen haben, dass das Stricken beendet ist.
Angesichts der vielen Schritte hier - Rnw -> Latex -> PDF, glaube ich nicht, dass Sie Synctex dazu bringen können, Ihre PDF- und Rnw-Dateien zusammen zu scrollen, aber ich würde mich freuen, wenn ich mich als falsch erweisen würde.
Was die Fensteranordnung betrifft, kann ich sie niemals dazu bringen, dort zu bleiben, wo ich sie haben möchte. Um das zu kompensieren, bin ich ziemlich geschickt darin geworden, Fenster und Puffer so zu mischen, wie ich sie brauche;)
Yihui hat ein kurzes Video auf der Knitr-Site gepostet, das einige davon demonstriert.
quelle
Dies ist eine Komplettlösung. Es wird ein PDF aus einem Rnw erstellt und angezeigt .
Insbesondere wird es:
Die Prozedur versucht, mit informativen Meldungen zu beenden, wenn einer der obigen Schritte fehlschlägt.
Bei Bedarf wird eine R-Instanz geöffnet oder die aktuelle Instanz wird zum Anzeigen des Strickprozesses verwendet.
Die LaTeX-Ausgabe wird an den "TeX-Ausgabe" -Puffer gesendet, der im Falle eines Kompilierungsfehlers ebenfalls abgerufen wird.
Verwendung
Meta- x
knit-me
um das PDF zu erstellen und anzuzeigen.Meta- x
knit-me-clear
um zwischengeschaltete LaTeX-Dateien zu entfernen undknit-me
.Die Bibliographie erfordert das "biblatex" -Paket, dh:
Der Name des bib-Motors (z
bibtex
,biber
) erhalten wird das Parsenbackend
Schlüsselwort.\addbibresource
Der Befehl wird analysiert, um die Bibliographiedatei abzurufen. Wenn siefoo.bib
neuer als die TeX-Datei ist, wird die Bib-Engine ausgeführt. In dieser Hinsicht wird nur der erste\addbibresource
Befehl berücksichtigt, wenn es viele gibt.Anpassen
Um die PDF-Datei tatsächlich anzuzeigen, legen Sie den ausführbaren Pfad des Viewers wie folgt fest:
Verwenden Sie möglicherweise einen Viewer wie SumatraPDF , der die PDF-Datei beim erneuten Kompilieren automatisch aktualisiert und die geöffnete Datei nicht blockiert, wodurch neue Kompilierungen verhindert werden.
Die Standard-LaTeX-Engine ist
pdflatex
(im aktuellen Pfad angenommen). Anpassen mit:Natürlich möchten Sie möglicherweise
knit-me
undknit-me-clear
an einige bequeme Schlüssel binden .Anmerkungen
Getestet in Windows MiKTeX, mit
biber
undbibtex8
Backends und GNU Emacs 25.1.1.Elisp-Code
quelle