这是一个最小的工作示例,名为mwe.Rmd:
---
output:
pdf_document:
latex_engine: xelatex
keep_tex: TRUE
## header-includes:
## - \usepackage[space]{grffile}
---
```{r}
plot(1, 1)
```
这将在调用时起作用rmarkdown::render("~/repos/mwe test/mwe.Rmd")
。但是,如果我打电话rmarkdown::render("~/repos/mwe test/mwe.Rmd", output_dir = "~/repos/mwe test/reports/")
它因以下错误而失败:
/usr/local/bin/pandoc +RTS -K512m -RTS test_rmarkdown_fail.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output pandoc4f583fe0effa.tex --template /usr/local/lib/R/3.6/site-library/rmarkdown/rmd/latex/default-1.17.0.2.tex --highlight-style tango --pdf-engine xelatex --variable graphics=yes --variable 'geometry:margin=1in' --variable 'compact-title:yes'
! Missing $ inserted.
<inserted text>
$
l.132 ...files/figure-latex/unnamed-chunk-1-1.pdf}
当我检查 .tex 文件时,它无法包含绘图,因为它包含一个空格(之间mwe and test).
\includegraphics{/Users/savey/repos/mwe test/reports/test_rmarkdown_fail_files/figure-latex/unnamed-chunk-1-1.pdf}
When output_dir
未指定,这只是一个相对路径,因此它可以正常工作。
带空格的路径在以下情况下工作正常latex_engine
被设定为pdftex
但不与xelatex
。我尝试添加space
LaTeX 包 grffile 的选项,但出现选项冲突的错误(与默认的 tex 模板)。我还尝试修改模板以将其添加到标题中,但无济于事。
如何将 rmarkdown 与 xelatex 一起使用并指定包含空格的输出目录?
是否有一些选项可以强制 pandoc 将图像路径用双引号引起来?
在您建议我重命名路径以删除空格之前,因为它们不属于那里(我完全同意您的观点),这是一个同步文件夹,我无法重命名(谢谢 OneDrive)。