我在markdown中创建了一个报告,并使用函数render()
将代码编译成PDF。它在一个月前运行良好,但是当我现在运行代码时,它给了我一个错误:
Latexmk:这是Latexmk,John Collins,2016年4月22日,版本:4.45。 创建输出:output / 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”不存在,当它在上面说它刚刚创建了文件时。
对此问题的任何建议都将受到高度赞赏!
答案 0 :(得分:25)
更好的解决方案似乎是使用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。
答案 1 :(得分:16)
我有类似的问题。在互联网上搜索后,我在community r studio
中找到了解决方案似乎这个bug与rmarkdown的1.9版本有关,所以解决方法是返回1.8版本
install.packages("devtools")
library(devtools)
install_version("rmarkdown",version=1.8)
重新安装后,当您再次尝试编织时,可能会要求您安装Miktex的一些软件包。如果您有任何问题,请检查是否有合适的镜子。希望这会有所帮助。
答案 2 :(得分:0)
同时,问题似乎在开发版1.10.11
中得到修复:
devtools::install_github('rstudio/rmarkdown')
答案 3 :(得分:0)
只需对输出问题进行评论,因为我也对此感到困惑:
outfile
必须是绝对路径。我认为dir.exists()
在本地工作目录中。在我的情况下,在前面使用".\\"
有帮助。在您的计算机中,它将使用paste0(".\\",outfile,".pdf")
。
答案 4 :(得分:0)
如果使用MikTex,您可能会缺少一些软件包(已安装基本的Miktex软件包)。只需编译您的tex文件以找出丢失的软件包(编译错误)并安装它们。然后编织您的rmd文档,它应该可以工作。