使用knitr编译.rnw文件后自动删除.tex文件

时间:2016-10-06 12:49:57

标签: r knitr r-markdown sweave pdflatex

对于rmarkdown文件,有一个选项,允许选择在编译后是否应删除.tex文件。因此只保留.rmd和.pdf文件。

有没有办法为.rnw文件实现这个目的?

1 个答案:

答案 0 :(得分:1)

我自己没有找到任何其他解决方案而不是实现更清洁的功能。检查一下:

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使用正则表达式选择的所有文件。

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