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

Mar*_*zer 5 r rstudio knitr r-markdown tinytex

我正在渲染两个文档,这些文档相互交叉引用。为此,我正在使用 LaTeX 包zref

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

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

取消选中全局选项工具 -> 全局选项 -> Sweave -> 编译后清理辅助输出无济于事。

我知道有两种选择可以解决这个问题:

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

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

但是还有我不知道的另一种选择吗?

Yih*_*Xie 5

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

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