渲染 rmarkdown 文档时保留辅助 TeX 文件

Keep auxiliary TeX files when rendering a rmarkdown document

我正在渲染两个文档,它们相互交叉引用项目。为此,我正在使用 LaTeX 包 zref.

要使 zref 工作,它需要调用 pdflatex 时创建的文档的 *.aux 文件。

不幸的是,使用 RStudio 及其渲染文档的基本方法(编织按钮,Cmd+Shift+K 或 rmarkdown::render())这些文件将在编译成功后被删除。

取消选中全局选项工具 -> 全局选项 -> Sweave -> 编译后清除辅助输出 没有帮助。

我知道有两种解决方法:

  1. pdf渲染后手动编译tex文件

  2. 编写一个执行该操作的 makefile。

但是还有其他我不知道的选择吗?

rmarkdown::render()最终调用tinytex::latexmk()将中间.tex编译为.pdf。要保留辅助文件,您需要 tinytex::latexmk(..., clean = FALSE)。设置 clean = FALSE 的一种方法是通过全局选项 options(tinytex.clean = FALSE)。您可以在 .Rprofile 或 Rmd 文档的代码块中进行设置。

您提到的 RStudio 选项仅适用于 Sweave 文档 (.Rnw)。