我正在使用knit2pdf("book.Rnw", quiet=TRUE)
来编译一个图书项目
RStudio。编织步骤需要很长时间(我还没有使用缓存),以及什么时候
有新的参考,数字,交叉引用等,它需要几个
传递以解决它们,即使.Rnw文件没有更改。
我想要的是knit2pdf的等效或扩展,它允许
要么knit=FALSE
要么禁止再生.tex文件,要么
选项latex.passes=
以请求tools::texi2pdf
的其他运行。
我查看了knit2pdf中的代码,并且允许它有点太不透明 这个功能的简单补丁。
答案 0 :(得分:0)
所有knit2pdf
都会生成一个.tex文件,然后调用tools:texi2pdf
。如果您正在寻找不首先生成.tex文件的knit2pdf
版本,那么它就是tools::texi2pdf
。
使用stringr::str_replace
,我做了类似的事情并且发现它已经足够了:
knit2pdf_mod <- function(rnw_file) {
knit2pdf(rnw_file, compiler = "xelatex")
texi2pdf(file = str_replace(rnw_file, pattern = "Rnw", replacement = "tex"))
}
您可以输入一个for循环,以便根据需要重复texi2pdf
步骤。
knit2pdf_mod <- function(rnw_file, latex.passes = 1) {
knit2pdf(rnw_file, compiler = "xelatex")
for (i in 1:latex.passes) {
texi2pdf(file = str_replace(rnw_file, pattern = "Rnw", replacement = "tex"))
}
}