web-dev-qa-db-fra.com

Knitr ne compilera pas le PDF: "Erreur dans tools :: file_path_as_absolute (fichier_sortie)"

J'ai créé un rapport dans markdown et j'utilise la fonction render() pour compiler le code en PDF. Cela fonctionnait bien il y a un mois, mais quand je lance le code maintenant, cela me donne une erreur:

Latexmk: Voici Latexmk, John Collins, 22 avril 2016, version: 4.45 . Sortie créée: output/Medborgerskabstabeller99.pdf

Erreur dans tools :: path_path_as_absolute (fichier_sortie): le fichier 'output/Medborgerskabstabeller99.pdf' n'existe pas

La commande de rendu que j'utilise pour créer le PDF se présente comme suit:

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

Tout d’abord, le message "Latexmk" n’apparaissait pas lorsque le code fonctionnait.

Deuxièmement, je ne sais pas pourquoi il est dit que "Medborgerskabstabeller99.pdf" n'existe pas, alors qu'il est dit plus haut qu'il vient de créer le fichier.

Toute suggestion sur le problème sera hautement appréciée!

22
Emilie Kirk

Une meilleure solution semble être d'utiliser tinytex.

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

Si vous devez utiliser MikTex et que vous l'avez déjà installé, ouvrez la console MikTex et modifiez le paramètre de paquet manquant en:

Always install missing packages on the fly

Si vous n'avez pas encore installé MikTex, assurez-vous de choisir lors de l'installation: 

Install missing packages: Yes

Lors de l'installation initiale, j'ai choisi Ask me first et cela échouerait. J'ai essayé à la fois de modifier les paramètres de MikTex, ainsi que de le désinstaller et de me contenter de tinytex, un peu plus léger pour mes besoins.

Le thread d'origine avec la solution vers le bas: https://github.com/rstudio/rmarkdown/issues/1285

20
Shawn

J'ai eu le même problème. Après une recherche sur Internet, j’ai trouvé une solution dans community r studio

Il semble que le bogue soit lié à la version 1.9 de rmarkdown. La solution consiste donc à revenir à la version 1.8.

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

Après la réinstallation, lorsque vous essayez à nouveau de tricoter, il vous sera probablement demandé d’installer un paquet de Miktex. Si vous rencontrez un problème, recherchez un miroir approprié. J'espère que cela t'aides.

15
Juan Acosta

Juste un commentaire à la question de sortie, car je me suis aussi retrouvé coincé avec ceci: La outfile doit être le chemin absolu. Je pense que dir.exists() cherche dans le répertoire de travail local. Utiliser ".\\" devant m'a aidé dans mon cas. Dans le vôtre, il utiliserait paste0(".\\",outfile,".pdf").

0
Sff

En attendant, le problème semble être résolu dans la version de développement 1.10.11:

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