渲染 rmarkdown 文档时保留辅助 TeX 文件
Keep auxiliary TeX files when rendering a rmarkdown document
我正在渲染两个文档,它们相互交叉引用项目。为此,我正在使用 LaTeX 包 zref
.
要使 zref
工作,它需要调用 pdflatex
时创建的文档的 *.aux
文件。
不幸的是,使用 RStudio 及其渲染文档的基本方法(编织按钮,Cmd+Shift+K 或 rmarkdown::render()
)这些文件将在编译成功后被删除。
取消选中全局选项工具 -> 全局选项 -> Sweave -> 编译后清除辅助输出 没有帮助。
我知道有两种解决方法:
pdf渲染后手动编译tex文件
编写一个执行该操作的 makefile。
但是还有其他我不知道的选择吗?
rmarkdown::render()
最终调用tinytex::latexmk()
将中间.tex
编译为.pdf
。要保留辅助文件,您需要 tinytex::latexmk(..., clean = FALSE)
。设置 clean = FALSE
的一种方法是通过全局选项 options(tinytex.clean = FALSE)
。您可以在 .Rprofile
或 Rmd 文档的代码块中进行设置。
您提到的 RStudio 选项仅适用于 Sweave 文档 (.Rnw
)。
我正在渲染两个文档,它们相互交叉引用项目。为此,我正在使用 LaTeX 包 zref
.
要使 zref
工作,它需要调用 pdflatex
时创建的文档的 *.aux
文件。
不幸的是,使用 RStudio 及其渲染文档的基本方法(编织按钮,Cmd+Shift+K 或 rmarkdown::render()
)这些文件将在编译成功后被删除。
取消选中全局选项工具 -> 全局选项 -> Sweave -> 编译后清除辅助输出 没有帮助。
我知道有两种解决方法:
pdf渲染后手动编译tex文件
编写一个执行该操作的 makefile。
但是还有其他我不知道的选择吗?
rmarkdown::render()
最终调用tinytex::latexmk()
将中间.tex
编译为.pdf
。要保留辅助文件,您需要 tinytex::latexmk(..., clean = FALSE)
。设置 clean = FALSE
的一种方法是通过全局选项 options(tinytex.clean = FALSE)
。您可以在 .Rprofile
或 Rmd 文档的代码块中进行设置。
您提到的 RStudio 选项仅适用于 Sweave 文档 (.Rnw
)。