首页 > 解决方案 > 渲染 rmarkdown 文档时保留辅助 TeX 文件

问题描述

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

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

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

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

我知道解决这个问题的两种选择:

  1. 在呈现 pdf 后手动编译 tex 文件。

  2. 编写一个执行此操作的生成文件。

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

标签: rrstudior-markdownknitrtinytex

解决方案


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

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


推荐阅读