使用 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 = '|')))
  }
}

应该是不言自明的:

  1. 要求用户确认当前工作目录就是要清理的目录。

  2. rules 包含所有应该注意的文件扩展名(或像 -tikzDictionary 这样的结尾)。

  3. 最后 file.remove 使用正则表达式删除 list.files 选择的所有文件。

您可以将此函数添加到自定义包中,该包在您启动新的 R 会话时加载,并在编译 *.Rnw 文档后调用它。