Sublime Text + LaTeXTools:如何编译后自动删除生成的文件?

Sublime Text + LaTeXTools:如何编译后自动删除生成的文件?

我用Sublime Text 编辑器 3LaTeX工具用 LaTeX 书写。

Control我通过按+来编译文件B。如果我将文本文件命名为main.tex,则生成的文件将是:

 - main.aux
 - main.bbl
 - main.blg
 - main.log
 - main.pdf
 - main.synctex.gz

有没有办法编辑 LaTeXTools 包,以便编译过程结束,.aux, .bbl, .blg, .log,.synctex.gz文件被删除?

答案1

方法 1:

安装 Sublime TextLaTeX工具包裹。

默认情况下Command Pallet -> LaTeXTools: Delete temporary tiles映射到Ctrl-L, backspace

// super+l,backspace to remove temporary files
{ "keys": ["super+l", "backspace"],
  "context":  [{"key": "selector", "operator": "equal", 
                  "operand": "text.tex.latex"}],
  "command": "delete_temp_files"},

LaTeXTools 软件包也有文档记录这里

要调整 LaTeXTools 清理的内容而不必担心包更新,请选择Preferences -> Package Settings -> LaTeXTools -> Settings -- User并调整以下代码块:

// ------------------------------------------------------------------
// Temporary file settings
// ------------------------------------------------------------------
// Ends of the names of temporary files to be deleted
"temp_files_exts": [
    ".blg",".bbl",".aux",".log",".brf",".nlo",".out",".dvi",".ps",
    ".lof",".toc",".fls",".fdb_latexmk",".pdfsync",".synctex.gz",
    ".ind",".ilg",".idx"
],
// Folders that are not traversed when deleting temp files
"temp_files_ignored_folders": [
    ".git", ".svn", ".hg"
],

将两者结合^b起来^l: 使用指挥链包如上所述https://stackoverflow.com/a/27994582,并修改构建键盘快捷键以包含delete_temp_files

方法 2:

安装latexmk。无论如何您都会需要它,因为它会按要求的次数运行 LaTeX,并根据需要运行 biber/BibTeX,直到正确构建 pdf。

然后在Sublime Text“Under”中Tools->Build System选择New Build System并输入以下内容:

{
    "shell_cmd": "latexmk -pdf \"$file\" && latexmk -c",
    "selector": "text.tex.latex"
}

如果latexmk不在默认路径中,则可能需要指定完整路径。以上适用于 OSX 和 Linux。 是&&一个 bash 脚本指令,它告诉 shell 如果第一个命令成功,则运行第二个命令。 运行-c清理。可以通过 的配置文件调整要清理哪些文件latexmk

答案2

我不知道修改 LaTeXTools 包是否是最好的方法,特别是如果它是一个经常更新的包。您可能会发现自己不得不重新实施修改,甚至不时重新设计它们。但是,这并不意味着您完全没有解决方案。您可以依靠操作系统的脚本功能来创建一个调用 LaTeXTools 然后在之后进行清理的过程。

作为一名 Linux 用户,我可以通过如下的 bash 脚本来完成此操作:

#!/bin/bash
    PROJECTNAME=$1
    {COMMAND_LINE_EQUIVALENT_OF_YOUR_CONTROL_B_COMMAND}
    rm $1.aux $1.bbl $1.blg $1.log $1.synctex.gz

当然,您可以用任何 CLI 命令结构替换 {} 之间的字符串,以完成与在界面中按 Ctrl+B 时相同的编译。

如果您使用的是不同的操作系统,例如 Windows,那么您可能需要了解 Windows 提供的脚本功能,并尝试构建与我在 bash 脚本中提出的想法相同的想法。

答案3

进入Preferences > Package Settings > LaTeXTools > Settings – UserSublime,找到标题为 的部分Output Directory settings。在这里,您需要指定"aux_directory""output_directory"设置。您的选项是:

  • "":默认;不使用任何辅助/输出目录
  • path:辅助/输出目录的路径;如果这不是绝对路径,则将被解释为相对于主 tex 文件的路径
  • "<<temp>>":辅助/输出目录将是一个以尽可能安全的方式生成的临时目录;请注意,此临时目录仅在 ST 重新启动之前有效,并将在下次启动时删除
  • "<<project>>":这将在与主 tex 文件相同的文件夹中创建一个辅助/输出目录;名称是主文件绝对路径的 MD5 哈希值;与<<temp>>此不同的是,该目录将保留
  • "<<cache>>":这将在 ST3 上的 ST 缓存目录或 ST2 上的合适目录中创建一个辅助/输出目录;与 不同,<<temp>>此目录将保留;与 不同<<project>>,它不会与主 tex 文件位于同一目录中

这允许您指定编译 latex PDF 时生成的所有额外文件的存储位置。有关这些设置的更多信息,请查看latextools 文档

相关内容