R bookdown, fontawesome5, рендеринг не удался, но файл отлично вписывается в RStudio
Испытываю странную проблему... используя MacTeX 2018, текущие версии всех пакетов, R и RStudio ditto... Я могу очень хорошо связать файл, содержащий значки fontawesome5 в RStudio, однако, render() не работает, и мне нужно использовать render в make-файле для автоматизации процесса сборки... 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
1 ответ
Ваш Makefile неправильный. Когда вы звоните
Rscript -e 'rmarkdown::render("debug.Rmd",bookdown::pdf_document2(toc = FALSE))'
вы существенно переопределили настройки в метаданных YAML (например, latex_engine
) с bookdown::pdf_document2(toc = FALSE)
, который имеет значение по умолчанию 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) должны быть тем, что вы хотите.