Aktualisierte Antwort (10. Februar 2013)
rmarkdown-Paket : Auf rmarkdown
github ist jetzt ein Paket verfügbar , das mit Pandoc verbunden ist. Es enthält eine render
Funktion. Die Dokumentation macht ziemlich deutlich, wie man rmarkdown unter einer Reihe anderer Formate in pdf konvertiert. Dies umfasst das Einfügen von Ausgabeformaten in die rmarkdown-Datei oder das Ausführen eines Ausgabeformats für die Rend-Funktion. Z.B,
render("input.Rmd", "pdf_document")
Befehlszeile:
Wenn ich render
von der Befehlszeile aus laufe (z. B. mit einem Makefile), habe ich manchmal Probleme damit, dass Pandoc nicht gefunden wird. Vermutlich befindet es sich nicht auf dem Suchpfad. In der folgenden Antwort wird erläutert, wie Sie der R-Umgebung Pandoc hinzufügen .
Auf meinem Computer unter OSX, auf dem ich eine Kopie von pandoc über RStudio habe, kann ich beispielsweise Folgendes verwenden:
Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/Applications/RStudio.app/Contents/MacOS/pandoc');library(rmarkdown); library(utils); render('input.Rmd', 'pdf_document')"
Alte Antwort (circa 2012)
Eine Reihe von Leuten hat vorgeschlagen, dass Pandoc der richtige Weg ist. Beachten Sie die nachstehenden Hinweise zur Bedeutung einer aktuellen Version von Pandoc.
Verwenden von Pandoc
Ich habe den folgenden Befehl verwendet, um R Markdown in HTML zu konvertieren (dh eine Variante dieses Makefiles ), wobei RMDFILE
der Name der R Markdown-Datei ohne die .rmd
Komponente lautet (es wird auch davon ausgegangen, dass die Erweiterung lautet .rmd
und nicht .Rmd
).
RMDFILE=example-r-markdown
Rscript -e "require(knitr); require(markdown); knit('$RMDFILE.rmd', '$RMDFILE.md'); markdownToHTML('$RMDFILE.md', '$RMDFILE.html', options=c('use_xhml'))"
und dann diesen Befehl in pdf konvertieren
Pandoc -s example-r-markdown.html -o example-r-markdown.pdf
Ein paar Anmerkungen dazu:
- Ich habe den Verweis in der Beispieldatei entfernt, die Diagramme nach imgur exportiert, um Bilder zu hosten.
- Ich habe einen Verweis auf ein Bild entfernt, das auf imgur gehostet wurde. Zahlen scheinen lokal zu sein.
- Die Optionen in der
markdownToHTML
Funktion bedeuteten, dass sich Bildreferenzen auf Dateien und nicht auf Daten beziehen, die in der HTML-Datei gespeichert sind (dh ich habe sie 'base64_images'
aus der Optionsliste entfernt).
- Die resultierende Ausgabe sah so aus . Es hat eindeutig ein Dokument im LaTeX-Stil erstellt, im Gegensatz zu dem, was ich bekomme, wenn ich die HTML-Datei von einem Browser aus als PDF drucke.
Aktuelle Version von Pandoc
Wie von @daroczig erwähnt, ist es wichtig, eine aktuelle Version von Pandoc zu haben, um PDFs ausgeben zu können. Unter Ubuntu war ich am 15. Juni 2012 mit der Version 1.8.1 von Pandoc im Paketmanager festgefahren, aber aus dem Änderungsprotokoll geht hervor, dass Sie für die PDF-Unterstützung mindestens Version 1.9+ von Pandoc benötigen.
Also habe ich installiert caball-install
. Und dann lief:
cabal update
cabal install pandoc
Pandoc wurde in installiert ~/.cabal/bin/pandoc
. Als ich pandoc
es ausführte, sah es immer noch die alte Version. Hier finden Sie Informationen zum Hinzufügen zum Pfad .
knit
undmdconvert.sh
). Es kann schwierig sein, einen allgemeinen Ansatz zu finden, da LaTeX zu flexibel ist. Sie können alle Arten von Vorlagen für Pandoc verwenden.