Ich versuche ein Rmarkdown-Dokument zu erstellen, das mit render()
gerendert wird. Der Aufruf render
hat zwei Elemente, die parametrisiert sind:
output_format()
. kableExtra
-Paket) Latex oder HTML sind. Dies ist die Rmarkdown-Datei namens test.Rmd
%Vor%Hier sind nun die zwei Aufrufe zum Rendern der Datei:
%Vor% Jetzt, wenn ich eine neue rududio Sitzung öffne, kann ich beide render
Anrufe kein Problem ausführen. Entweder .pdf oder eine .html-Datei wird erstellt. Wenn ich dann versuche, das .pdf render erneut auszuführen bekomme ich den folgenden Fehler:
"C: / Programme / RStudio / bin / pandoc / pandoc" + RTS -K512m -RTS test.utf8.md --to latex --from Abschrift + autolink_bare_uris + ascii_identifiers + tex_math_single_backslash --output test.pdf --template "C: \ Benutzer \ salbers \ R \ win-Bibliothek \ 3.4 \ rmarkdown \ rmd \ latex \ default-1.17.0.2.tex" --highlight-tango --latex-engine pdflatex --variable graphics = yes --variable "geometry: margin = 1in"! Nicht definiertes Steuerelement Sequenz. \ begin {tabular} {rrrrl} \ toprule Sepal.Length & amp; Sepal.Width & amp; Pet ... l.267 \ end {tabular}}
pandoc.exe: Fehler beim Erzeugen von PDF Error: pandoc Dokumentkonvertierung fehlgeschlagen mit Fehler 43 Zusätzlich: Warnmeldung: running command '"C: / Programme / RStudio / bin / Pandoc / Pandoc" + RTS -K512m -RTS test.utf8.md --to latex --from Abschrift + autolink_bare_uris + ascii_identifiers + tex_math_single_backslash --output test.pdf --template "C: \ Benutzer \ salbers \ R \ win-Bibliothek \ 3.4 \ rmarkdown \ rmd \ latex \ default-1.17.0.2.tex" --highlight-tango --latex-engine pdflatex --variable graphics = yes --variable "geometry: margin = 1in" 'hatte den Status 43
Der HTML-Renderer funktioniert immer wieder einwandfrei. Wenn ich zuerst rududio schließe, dann öffne das Projekt, das Rendern für pdf funktioniert gut.
Hmm, lass mich zuerst die Lösung posten. Um dieses Verhalten zu lösen, müssen Sie die folgenden Dinge in Ihren Yaml-Abschnitt einfügen. Ich habe auch eine Funktion kableExtra_latex_packages()
in der Entwicklerversion zu Beginn dieser Woche hinzugefügt, um die folgenden Texte anzuzeigen.
Wenn Sie neugierig sind, warum es so ein komisches Verhalten gibt, hier eine kurze Erklärung. Wenn Sie kableExtra
zum ersten Mal in eine rmarkdown-Umgebung laden, wird versucht, die LaTeX-Paketinformationen oben anzugeben in die rmarkdown Metadaten mit der usepackage_latex()
Funktion , die kommt mit diesem Paket. Es funktioniert gut, wenn Sie nur den Knit-Knopf drücken, weil jeder "Strick + Rendering" -Prozess isoliert werden soll. Aber, wie wir hier sehen, wenn Sie versuchen, von der Konsole zu rendern, da (meine Annahme) knitr oder rmarkdown versucht, einige zwischengespeicherte Ergebnisse wiederzuverwenden, konnte dieser Prozess (wie wir es hier sehen) überraschend nicht replizieren. Es stellt sich heraus, dass diese LaTeX-Paketabhängigkeiten nicht in die Tex-Datei, die erzeugt wird, eingegeben werden und mit einem Fehler enden. Wenn Sie RStudio schließen und neu starten, ist der temporäre Speicher natürlich verschwunden und Sie sollten diese Pakete erneut laden können. Ich habe das Gefühl, dass es sich um einen Fehler im Zusammenhang mit der globalen Variablen im Rmarkdown handeln könnte. Ich denke, wir können es beheben, indem wir am Ende der render
-Funktion einen "forget the meta" -Teil hinzufügen, aber ich muss es so aussehen.
Ein Teil davon war schlecht, weil ich nicht genügend Dokumentationen über LaTeX-Pakete zur Verfügung gestellt habe, die in früheren Versionen verwendet wurden. Nun habe ich zu Beginn der Paket-Vignette von kableExtra 0.5.0 einen neuen Abschnitt zu diesem Thema hinzugefügt. die Anfang dieser Woche veröffentlicht wurde. Fühlen Sie sich frei, es auszuprobieren. Wie bereits erwähnt, können Sie die Liste in der aktuellen Version auch mit der Funktion kableExtra_latex_packages()
aufrufen.
In meinem Fall hat @Hao antwort nicht funktioniert ... Endlich habe ich es geschafft, das kableExtra-Paket nach jeder Renderausführung wie folgt zu entladen:
%Vor%Es sollte auch möglich sein, die Umgebung mit etwas wie
auszuwählen %Vor%das ist sauberer ... aber ich habe es nicht geschafft!
Tags und Links r r-markdown kableextra