使用 knitr 编译 .rnw 文件后自动删除 .tex 文件
Remove .tex files automatically after compiling .rnw file using knitr
对于 rmarkdown 文件,有一个选项允许选择是否在编译后删除 .tex 文件。因此只保留 .rmd 和 .pdf 文件。
有没有办法对 .rnw 文件也实现这一点?
除了自己实现更清洁的功能外,我还没有找到任何其他解决方案。检查这个:
cleanFolder <- function() {
answer <- NA
while(!(answer %in% c('y', 'n'))) {
answer <- readline(paste("Clean ", getwd(),"? (y/n)"))
}
if(answer == 'y') {
rules <- c('.log', '.vrb', '.nav', '.snm', '.toc',
'-tikzDictionary', '.tex', '.synctex.gz')
file.remove(list.files(pattern = paste0('\',rules ,'$', collapse = '|')))
}
}
应该是不言自明的:
要求用户确认当前工作目录就是要清理的目录。
rules
包含所有应该注意的文件扩展名(或像 -tikzDictionary
这样的结尾)。
最后 file.remove
使用正则表达式删除 list.files
选择的所有文件。
您可以将此函数添加到自定义包中,该包在您启动新的 R 会话时加载,并在编译 *.Rnw 文档后调用它。
对于 rmarkdown 文件,有一个选项允许选择是否在编译后删除 .tex 文件。因此只保留 .rmd 和 .pdf 文件。
有没有办法对 .rnw 文件也实现这一点?
除了自己实现更清洁的功能外,我还没有找到任何其他解决方案。检查这个:
cleanFolder <- function() {
answer <- NA
while(!(answer %in% c('y', 'n'))) {
answer <- readline(paste("Clean ", getwd(),"? (y/n)"))
}
if(answer == 'y') {
rules <- c('.log', '.vrb', '.nav', '.snm', '.toc',
'-tikzDictionary', '.tex', '.synctex.gz')
file.remove(list.files(pattern = paste0('\',rules ,'$', collapse = '|')))
}
}
应该是不言自明的:
要求用户确认当前工作目录就是要清理的目录。
rules
包含所有应该注意的文件扩展名(或像-tikzDictionary
这样的结尾)。最后
file.remove
使用正则表达式删除list.files
选择的所有文件。
您可以将此函数添加到自定义包中,该包在您启动新的 R 会话时加载,并在编译 *.Rnw 文档后调用它。