Ich habe zuvor nach den Befehlen zum Konvertieren von R Markdown in HTML gefragt .
Was ist ein guter Weg, um R Markdown-Dateien in PDF-Dokumente zu konvertieren?
Eine gute Lösung würde so viel wie möglich vom Inhalt (z. B. Bilder, Gleichungen, HTML-Tabellen usw.) erhalten. Die Lösung muss über die Befehlszeile ausgeführt werden können. Eine gute Lösung wäre auch plattformübergreifend und würde im Idealfall Abhängigkeiten minimieren, um das Teilen von Makefiles usw. zu vereinfachen.
Insbesondere gibt es viele Optionen:
- Gibt an, ob RMD in MD in HTML in PDF konvertiert werden soll. oder RMD zu MD zu PDF; oder RMD zu PDF
- Wenn Sie das
markdown
Paket in R verwenden, welche Optionen anzugeben sind - Ob zu verwenden
pandoc
, ein in R integriertes Paket oder etwas anderes
Hier ist eine Beispiel- RMD-Datei , die vermutlich einen vernünftigen Test für jede vorgeschlagene Lösung bietet. Es wurde als Grundlage für diesen Blog-Beitrag verwendet .
r-markdown
knitr
pandoc
Jeromy Anglim
quelle
quelle
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.Antworten:
Aktualisierte Antwort (10. Februar 2013)
rmarkdown-Paket : Auf
rmarkdown
github ist jetzt ein Paket verfügbar , das mit Pandoc verbunden ist. Es enthält einerender
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,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:
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
).und dann diesen Befehl in pdf konvertieren
Ein paar Anmerkungen dazu:
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).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:Pandoc wurde in installiert
~/.cabal/bin/pandoc
. Als ichpandoc
es ausführte, sah es immer noch die alte Version. Hier finden Sie Informationen zum Hinzufügen zum Pfad .quelle
pandoc
ist in Version 1.12 sogar in meinem mittlerweile veralteten Ubuntu 13.04.Ich denke , was Sie wirklich brauchen pandoc , die großartige Software entworfen und gebaut wurde nur für diese Aufgabe :) Neben pdf , könnten Sie Ihre konvertieren md - Datei zB docx oder odt unter anderem.
Nun, die Installation einer aktuellen Version von Pandoc kann sich unter Linux
haskell-platform
herausfordern (da Sie das gesamte ˙ benötigen, um aus den Quellen zu erstellen), ist aber unter Windows / Mac mit nur wenigen Megabyte Download wirklich einfach.Wenn Sie die gebraute / gestrickte Markdown-Datei haben, können Sie einfach
pandoc
z. B. bash oder mit dersystem
Funktion in R aufrufen . Eine POC-Demo von letzterer ist in derṖandoc.convert
Funktion meines kleinen Pakets implementiert (von dem Sie sich schrecklich langweilen müssen, wenn ich es versuche lenken Sie Ihre Aufmerksamkeit dort bei jeder Gelegenheit ).quelle
--toc
in der Befehlszeile (was zu einem Nics-Inhaltsverzeichnis führt, das auf Ihren Überschriften basiert) und das Anpassen der LaTeX-Vorlage an Ihre Anforderungen (wie das Hinzufügen dort\listoffigures
und / oder\listoftables
usw.) können zu wunderbaren Dokumenten führen.apt-get install pandoc
?sources.list
undapt-get install -t testing pandoc
dann zu installierenhaskell-platform
und zu kompilieren. (Normalerweise mache ich das mit experimentellen. Ich hoffe, dass es beim Testen genauso funktioniert.)Im Moment (August 2014) können Sie RStudio zum Konvertieren von R Markdown in PDF verwenden. Grundsätzlich verwendet RStudio Pandoc , um Rmd in PDF zu konvertieren.
Sie können Metadaten ändern in:
Weitere Informationen finden Sie unter http://rmarkdown.rstudio.com/pdf_document_format.html
quelle
Für eine Option, die eher dem entspricht, was Sie beim Drucken über einen Browser erhalten,
wkhtmltopdf
steht eine Option zur Verfügung.Auf Ubuntu
Und dann der gleiche Befehl wie für das Pandoc-Beispiel, um zum HTML zu gelangen:
und dann
Die resultierende Datei sah so aus . Es schien nicht mit MathJax umzugehen ( dieses Problem wird hier behandelt ), und die Seitenumbrüche sind hässlich. In einigen Fällen kann ein solcher Stil jedoch einer Präsentation im LaTeX-Stil vorgezogen werden.
quelle
system("wkhtmltopdf temp.html temp.pdf")
Idee, wie man das behebtNur zwei Schritte:
Installieren Sie die neueste Version "pandoc" von hier:
https://github.com/jgm/pandoc/releases
Rufen Sie die Funktion
pandoc
in derlibrary(knitr)
So können Sie Ihre "input.md" in "input.pdf" konvertieren.
quelle
Ich fand es am einfachsten, R Studio zu verwenden, aber wenn Sie über die Befehlszeile steuern möchten, kann ein einfaches R-Skript den Trick mit dem Befehl rmarkdown render (wie oben erwähnt) ausführen . Vollständige Skriptdetails hier
quelle
Wenn Sie nichts installieren möchten, können Sie HTML ausgeben. Öffnen Sie dann die HTML-Datei - sie sollte in einem Browserfenster geöffnet werden, und klicken Sie dann mit der rechten Maustaste, um sie zu drucken. Wählen Sie im Druckfenster unten rechts "Als PDF speichern", wenn Sie einen Mac verwenden. Voila!
quelle
Befolgen Sie diese einfachen Schritte:
1: Führen Sie im Rmarkdown-Skript Knit (Strg + Umschalt + K) aus. 2: Klicken Sie nach dem Öffnen des HTML-Markdowns auf Im Browser öffnen (oben links) und das HTML wird in Ihrem Webbrowser geöffnet. 3: Verwenden Sie dann Strg + P und als PDF speichern.
quelle