r语言 - Knitr 不会编译 PDF: "Error in tools::file_path_as_absolute(output_file)"



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

Latexmk

:这是 Latexmk,约翰·柯林斯,2016 年 4 月 22 日,版本:4.45。 输出创建:输出/Medborgerskabstabeller99.pdf

工具中的错误::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"))

首先,当代码工作时,之前的"Latexmk"消息没有出现。

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

对此问题的任何建议将不胜感激!

更好的解决方案似乎是使用tinytex。

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

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

Always install missing packages on the fly

如果您尚未安装MikTex,则在安装时请确保选择:

Install missing packages: Yes

当我最初安装时,我选择了Ask me first,它会失败。我已经尝试了更改MikTex的设置,以及卸载它,只是选择了tinytex,它对我的需求来说更轻巧一些。

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

我也有类似的问题。在互联网上搜索后,我在社区r工作室中找到了一个解决方案

似乎该错误与 rmarkdown 的 1.9 版本有关,因此解决方案是返回到 1.8 版本

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

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

同时,

该问题似乎在开发版本中得到了修复1.10.11

devtools::install_github('rstudio/rmarkdown')

只是对输出问题的评论,因为我也陷入了困境:outfile必须是绝对路径。我认为dir.exists()在本地工作目录中查找。在前面使用".\"对我的情况有所帮助。在您的版本中,它将使用paste0(".\",outfile,".pdf").

如果使用

MikTex,您可能会丢失一些软件包(安装了基本的Miktex软件包(。只需编译您的tex文件即可找出缺少的软件包(编译错误(并安装它们。然后编织你的 rmd 文档,它应该可以工作。

相关内容

最新更新