如何强制 bookdown 使用 xelatex 引擎而不是 pdflatex 呈现文档?

How to force bookdown to render document with xelatex engine instead of pdflatex?

我使用 bookdown 渲染 html 本书。如何使用 LaTeX enging xelatex 而不是 pdflatex 渲染同一本书?

这是我使用的主要代码:

bookdown::render_book('index.Rmd', output_file='mybook.pdf','bookdown::pdf_book')

一直在说! Sorry, but C:\PROGRA~1\MIKTEX~1.9\miktex\bin\x64\pdflatex.exe did not succeed.。因为在渲染其他类型的 pdf 文档时我使用 xelatex 作为引擎,我知道它应该在我的系统中可用。如何强制 bookdown 使用 xelatex?

Here这个答案好像之前有人问过,但我不知道如何使用提到的解决方案:pandoc_options(args = c("--latex-engine", "xelatex")).

当我做这样的事情时:

bookdown::render_book('index.Rmd', output_file='mybook.pdf','bookdown::pdf_book',pandoc_options(latex_engine = 'xelatex'))

出现错误:Error in pandoc_options(latex_engine = "xelatex") : argument "to" is missing, with no default

有谁知道如何处理这个问题?

您可以尝试将其插入 _output.yml 通用配置文件(对于 bookdown,如 documentation 中所示):

bookdown::pdf_book:
  latex_engine: xelatex

这通常适用于我的情况。

如果你想使用 pandoc_options(),你可能还需要传递 to 参数(我没试过):

bookdown::render_book(
  'index.Rmd',
  output_file = 'mybook.pdf',
  'bookdown::pdf_book',
  pandoc_options(
    to = "pdf",
    latex_engine = "xelatex"
  )
)