遇到一个奇怪的问题...使用MacTeX 2018,所有软件包的当前版本,R和RStudio同上...我可以编织一个包含fontawesome5图标的文件,在RStudio中就可以了,但是render()失败了,我需要在makefile中使用render来自动执行构建过程... render()似乎使对Latexmk的调用处于活动状态,该调用似乎在已存在的字体上调用tlmgr,然后因文件未找到错误而停止运行...任何建议会非常受欢迎,成功地拔出了头发...预先感谢!
以下是复制所需的最小文件(以下内容为debug.Rmd):
---
output:
bookdown::pdf_document2:
toc: no
latex_engine: lualatex
header-includes:
- \usepackage{fontawesome5}
---
- \faIcon{phone}
如果删除\faIcon{phone}
,它将呈现良好的效果,当然,在RStudio中也可以正常显示。
这是错误消息(会话信息如下)
Rscript -e 'rmarkdown::render("debug.Rmd",bookdown::pdf_document2(toc = FALSE))'
processing file: debug.Rmd
|.................................................................| 100%
ordinary text without R code
output file: debug.knit.md
/usr/local/bin/pandoc +RTS -K512m -RTS debug.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output debug.tex --template /Users/jracine/Library/R/rmarkdown/rmd/latex/default-1.17.0.2.tex --number-sections --highlight-style tango --pdf-engine pdflatex --variable graphics=yes --variable 'geometry:margin=1in' --variable 'compact-title:yes' --variable tables=yes --standalone
tlmgr search --file --global '/fa5free0solid[.](tfm|afm|mf|otf)'
Trying to automatically install missing LaTeX packages...
tlmgr install fontawesome5
tlmgr: package repository http://ctan.mirror.colo-serv.net/systems/texlive/tlnet (verified)
tlmgr install: package already present: fontawesome5
tlmgr path add
tlmgr search --file --global '/fa5free0solid[.](tfm|afm|mf|otf)'
Output created: debug.pdf
Error in tools::file_path_as_absolute(output_file) :
file 'debug.pdf' does not exist
Calls: <Anonymous> -> <Anonymous>
Execution halted
会话信息:
Session info ------------------------------------------------------------------
setting value
version R version 3.5.0 (2018-04-23)
system x86_64, darwin17.5.0
ui X11
language (EN)
collate en_CA.UTF-8
tz America/Toronto
date 2018-06-24
Packages ----------------------------------------------------------------------
package * version date source
backports 1.1.2 2017-12-13 CRAN (R 3.5.0)
base64enc 0.1-3 2015-07-28 CRAN (R 3.5.0)
bookdown 0.7.13 2018-06-18 Github (rstudio/bookdown@dda5f5a)
digest 0.6.15 2018-01-28 CRAN (R 3.5.0)
evaluate 0.10.1 2017-06-24 CRAN (R 3.5.0)
glue 1.2.0 2017-10-29 CRAN (R 3.5.0)
graphics * 3.5.0 2018-04-23 local
grDevices * 3.5.0 2018-04-23 local
highr 0.7 2018-06-09 CRAN (R 3.5.0)
htmltools 0.3.6 2017-04-28 CRAN (R 3.5.0)
jsonlite 1.5 2017-06-01 CRAN (R 3.5.0)
knitr 1.20.6 2018-06-22 Github (yihui/knitr@2b3e617)
magrittr 1.5 2014-11-22 CRAN (R 3.5.0)
markdown 0.8 2017-04-20 CRAN (R 3.5.0)
methods * 3.5.0 2018-04-23 local
mime 0.5 2016-07-07 CRAN (R 3.5.0)
Rcpp 0.12.17 2018-05-18 CRAN (R 3.5.0)
rmarkdown 1.10.2 2018-06-22 Github (rstudio/rmarkdown@1f5b299)
rprojroot 1.3-2 2018-01-03 CRAN (R 3.5.0)
stats * 3.5.0 2018-04-23 local
stringi 1.2.3 2018-06-12 CRAN (R 3.5.0)
stringr 1.3.1 2018-05-10 CRAN (R 3.5.0)
tinytex 0.5 2018-04-16 CRAN (R 3.5.0)
tools 3.5.0 2018-04-23 local
utils * 3.5.0 2018-04-23 local
xfun 0.2.5 2018-06-22 Github (yihui/xfun@b75336c)
yaml 2.1.19 2018-05-01 CRAN (R 3.5.0)
> rmarkdown::pandoc_version()
[1] ‘2.2.1’
> system('pdflatex --version')
pdfTeX 3.14159265-2.6-1.40.19 (TeX Live 2018)
kpathsea version 6.3.0
Copyright 2018 Han The Thanh (pdfTeX) et al.
There is NO warranty. Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
Compiled with libpng 1.6.34; using libpng 1.6.34
Compiled with zlib 1.2.11; using zlib 1.2.11
Compiled with xpdf version 4.00
答案 0 :(得分:1)
您的Makefile错误。通话时
Rscript -e 'rmarkdown::render("debug.Rmd",bookdown::pdf_document2(toc = FALSE))'
实际上,您使用latex_engine
(默认为bookdown::pdf_document2(toc = FALSE)
)覆盖了YAML元数据(例如latex_engine = '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中设置的格式的名称)应该是您想要的。