R bookdown,fontawesome5,渲染失败,但文件在RStudio中编织得很好

R bookdown,fontawesome5,渲染失败,但文件在RStudio中编织得很好,r,latex,pandoc,bookdown,R,Latex,Pandoc,Bookdown,遇到一个奇怪的问题。。。使用MacTeX 2018,所有软件包的当前版本,R和RStudio同上。。。我可以在RStudio中编织一个包含fontawesome5图标的文件,但是render()失败了,我需要在makefile中使用render来自动生成过程。。。render()似乎启动了对latexmk的调用,该调用似乎对已经存在的字体调用tlmgr,然后由于出现“找不到文件”错误而停止。。。任何建议都将是非常受欢迎的,头发成功地拔出了这个。。。提前谢谢 下面是复制所需的最小文件(debug.

遇到一个奇怪的问题。。。使用MacTeX 2018,所有软件包的当前版本,R和RStudio同上。。。我可以在RStudio中编织一个包含fontawesome5图标的文件,但是render()失败了,我需要在makefile中使用render来自动生成过程。。。render()似乎启动了对latexmk的调用,该调用似乎对已经存在的字体调用tlmgr,然后由于出现“找不到文件”错误而停止。。。任何建议都将是非常受欢迎的,头发成功地拔出了这个。。。提前谢谢

下面是复制所需的最小文件(debug.Rmd,如下所示):

如果删除
\faIcon{phone}
,它会呈现良好效果,当然在RStudio中也会生成良好效果

下面是错误消息(下面是会话信息)


你的Makefile是错误的。当你打电话的时候

Rscript -e 'rmarkdown::render("debug.Rmd",bookdown::pdf_document2(toc = FALSE))'
实际上,您可以使用
bookdown::pdf_document2(toc=FALSE)
覆盖YAML元数据(例如
latex_引擎
)中的设置,该设置具有默认的
latex_引擎='pdflatex'
。这就是为什么中间.tex输出是用
pdflatex
而不是
lualatex
编译的

要么打电话

Rscript -e 'rmarkdown::render("debug.Rmd")'
如果
bookdown::pdf_document2
是您需要的唯一输出格式,或调用

Rscript -e 'rmarkdown::render("debug.Rmd", "bookdown::pdf_document2")'
如果在YAML中设置了多个输出格式


对于
rmarkdown::render()
(例如,输出格式)的第二个参数,您应该很少需要返回输出格式的输出格式函数的形式(例如,
bookdown::pdf_document2(…)
)。在大多数情况下,我相信默认值(
NULL
,表示在YAML中设置的第一种格式)或字符串(在YAML中设置的格式名称)应该是您想要的。

问题发生在Pandoc/LaTeX中,而不是(直接)在R中,这使得调试非常困难。也许你可以试着打电话给Pandoc明确地降低价格?看起来这可能是一个路径/库问题,但我不清楚LaTeX是如何处理这些问题的。谢谢。事实证明,pandoc无法识别YAML标题中的latex_engine命令。在render/pdf\u文档调用中显式添加它似乎可以解决此问题。虫子还是特征?嗯,好奇。YAML通过模板函数(此处为
bookdown::pdf_document2
rmarkdown::pdf_document
)传递到
render
,该函数编织并调用pandoc。因此,它可能是一个RMAKDOWN或pandoc问题;很难说。问候易慧-谢谢你的评论和时间。。。感谢您对社区做出的巨大贡献!
Rscript -e 'rmarkdown::render("debug.Rmd",bookdown::pdf_document2(toc = FALSE))'
Rscript -e 'rmarkdown::render("debug.Rmd")'
Rscript -e 'rmarkdown::render("debug.Rmd", "bookdown::pdf_document2")'