Aktualisierte Antwort (10. Februar 2013)
rmarkdown-Paket : Auf rmarkdowngithub ist jetzt ein Paket verfügbar , das mit Pandoc verbunden ist. Es enthält eine renderFunktion. 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 rendervon 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 RMDFILEder Name der R Markdown-Datei ohne die .rmdKomponente lautet (es wird auch davon ausgegangen, dass die Erweiterung lautet .rmdund 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
markdownToHTMLFunktion 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 pandoces ausführte, sah es immer noch die alte Version. Hier finden Sie Informationen zum Hinzufügen zum Pfad .
knitundmdconvert.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.