Knitr不会编译PDF:"工具中的错误:: file_path_as_absolute(output_file)"

Emi*_*irk 27 pdf latex r knitr r-markdown

我在markdown中创建了一个报告,并使用该函数render()将代码编译成PDF.它在一个月前工作正常,但是当我现在运行代码时,它给了我一个错误:

Latexmk:这是Latexmk,John Collins,2016年4月22日,版本:4.45.创建输出:output/Medborgerskabstabeller99.pdf

tools :: file_path_as_absolute(output_file)出错:文件'output/Medborgerskabstabeller99.pdf'不存在

我用来创建PDF的渲染命令如下所示:

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

首先,代码工作时没有出现"Latexmk"消息.

其次,我不知道为什么它说"Medborgerskabstabeller99.pdf"不存在,当它上面说它刚刚创建了文件时.

任何关于这个问题的建议都将受到高度赞赏!

Sha*_*awn 25

一个更好的解决方案似乎是使用tinytex.

install.packages('tinytex')
tinytex::install_tinytex()
Run Code Online (Sandbox Code Playgroud)

如果您必须使用MikTex并已安装它,请打开MikTex控制台并将缺少的软件包设置更改为:

Always install missing packages on the fly
Run Code Online (Sandbox Code Playgroud)

如果您尚未安装MikTex,那么在安装时请务必选择:

Install missing packages: Yes
Run Code Online (Sandbox Code Playgroud)

当我最初安装时,我选择了Ask me first它会失败.我已经尝试过更改MikTex的设置,以及卸载它,只是为了满足我的需求而更加轻巧的tinytex.

原始线程附近的解决方案:https: //github.com/rstudio/rmarkdown/issues/1285

  • 允许miktex在飞行中安装软件包有帮助.要注意,如果互联网通过互联网连接,请确保代理设置在`miktex package manager(admin)`中 (3认同)

小智 16

我有类似的问题.在网上搜索后,我在社区r工作室找到了解决方案

看来这个bug与r​​markdown的1.9版本有关,所以解决方法是返回1.8版本

install.packages("devtools")
library(devtools)
install_version("rmarkdown",version=1.8)
Run Code Online (Sandbox Code Playgroud)

重新安装后,当您再次尝试编织时,可能会要求您安装Miktex的一些软件包.如果您有任何问题,请检查是否有合适的镜子.希望这可以帮助.