it-swarm.com.de

Knitr kompiliert kein PDF: "Fehler in Tools :: file_path_as_absolute (Ausgabedatei)"

Ich habe einen Bericht in Markdown erstellt und verwende die Funktion render(), um den Code in eine PDF-Datei zu übersetzen. Es hat vor einem Monat gut funktioniert, aber wenn ich den Code jetzt ausführte, gibt es einen Fehler:

Latexmk: Dies ist Latexmk, John Collins, 22. April 2016, Version: 4.45 . Ausgabe erstellt: output/Medborgerskabstabeller99.pdf

Fehler in tools :: file_path_as_absolute (Ausgabedatei): Die Datei 'output/Medborgerskabstabeller99.pdf' ist nicht vorhanden

Der Renderbefehl, den ich zum Erstellen von PDF verwende, sieht folgendermaßen aus:

outfile <- file.path("output",paste0("Medborgerskabstabeller99"))
render(input = "Medborgerskabstabeller.Rmd",
       encoding = "UTF-8",
       output_file = paste0(outfile,".pdf"))

Zuallererst erschien die "Latexmk" -Meldung nicht, als der Code funktionierte.

Zweitens habe ich keine Ahnung, warum es heißt, dass "Medborgerskabstabeller99.pdf" nicht existiert, wenn darüber gesagt wird, dass die Datei gerade erstellt wurde.

Anregungen zum Problem werden sehr geschätzt!

22
Emilie Kirk

Eine bessere Lösung scheint die Verwendung von tinytex zu sein.

install.packages('tinytex')
tinytex::install_tinytex()

Wenn Sie MikTex verwenden und bereits installiert haben, öffnen Sie die MikTex-Konsole und ändern Sie die Einstellung für das fehlende Paket in:

Always install missing packages on the fly

Wenn Sie MikTex noch nicht installiert haben, wählen Sie bei der Installation Folgendes aus: 

Install missing packages: Yes

Bei meiner ursprünglichen Installation wählte ich Ask me first und es würde fehlschlagen. Ich habe sowohl versucht, die Einstellungen von MikTex zu ändern, als auch deinstalliert, und habe mich für tinytex entschieden, was für meine Bedürfnisse etwas leichter war.

Der ursprüngliche Thread mit der Lösung unten: https://github.com/rstudio/rmarkdown/issues/1285

20
Shawn

Ich hatte ein ähnliches Problem. Nachdem ich im Internet gesucht hatte, fand ich eine Lösung in community r studio

Es scheint, dass der Fehler mit der 1.9-Version von rmarkdown zusammenhängt. Die Lösung besteht darin, zur 1.8-Version zurückzukehren

install.packages("devtools")
library(devtools)
install_version("rmarkdown",version=1.8)

Wenn Sie nach der Neuinstallation erneut versuchen, zu stricken, werden Sie wahrscheinlich aufgefordert, ein Paket von Miktex zu installieren. Wenn Sie Probleme haben, prüfen Sie, ob der Spiegel korrekt ist. Hoffe das hilft.

15
Juan Acosta

Nur ein Kommentar zu der Ausgabe-Frage, da ich auch dabei hängen geblieben bin: Die outfile muss der absolute Pfad sein. Ich denke, dir.exists() schaut in das lokale Arbeitsverzeichnis. In meinem Fall half ".\\" vor. In Ihrem würde es paste0(".\\",outfile,".pdf") verwenden.

0
Sff

Wenn Sie MikTex verwenden, fehlen wahrscheinlich einige Pakete (grundlegende Miktex-Pakete sind installiert). Kompilieren Sie einfach Ihre Tex-Datei, um fehlende Pakete zu finden (Kompilierungsfehler) und installieren Sie sie. Dann stricken Sie Ihr RMD-Dokument und es sollte funktionieren.

0
Elligno

Inzwischen scheint das Problem in der Entwicklungsversion 1.10.11 behoben zu sein:

devtools::install_github('rstudio/rmarkdown')
0
jay.sf