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) должны быть тем, что вы хотите.

Другие вопросы по тегам