编译后自动删除生成的乳胶(垃圾)文件?

Automatically remove generated latex (junk) files after compilation?

我想知道是否有简单的命令可以删除在latex编译过程中生成的所有不需要的文件,例如.aux、.log 等

最好将它链接到常规的 Latex 构建命令,这样在我点击 "Compile" 后,垃圾文件就会被删除。

作为编辑工具,我使用的是TeXstudio。

我创建了一个 shell 脚本,它完全符合您的要求。它适用于 Mac 和 Linux;通过一些调整 Windows 应该也是可能的。从我的存储库下载文件 "cleanlatexjunk.sh" 并按照说明进行操作:

https://github.com/cgraumann/LatexUtils

  1. 在 TexStudio
  2. 中打开 Preferences/Build
  3. Select 高级选项在底部
  4. 添加名称为 cleanjunk
  5. 的新用户命令
  6. 作为命令,输入: "/PATH/TO/SCRIPT/cleanlatexjunk.sh" -fp ?me ?a) 并相应地更改 /PATH/TO/SCRIPT/
  7. Build & View 的元命令中添加 | txs:///compile | txs:///compile | txs:///cleanjunk 最后

现在每个构建和视图执行都应该产生一个干净的工作区:-)

Edit:正如 Werner 在评论中提到的,在构建过程中当然需要 "junk" 文件。因此,步骤 5 中建议的命令包括两个额外的编译运行。这可确保正确呈现所有目录和链接。

我正在使用 crontab 中的 clean(它每 3 小时运行一次)。它删除所有超过 1 天的 *.aux*.log 文件 - 使用 -t 选项(因为 aux 是必要的,正如 Werner 上面写的那样)。

我认为您也可以在编辑器中使用此命令,如上文 Captain Ahab 所写。

使用此命令将 latex 构建为 pdf 或将命令保存到文件中 build.sh

#!/bin/sh
pdflatex -synctex=1 -interaction=nonstopmode "main".tex
rm -r -f *.aux *.log *.lof *.gz *.toc *.bak~

运行 命令 chmod +x build.sh 使文件可执行。 现在 运行 ./build.sh 在终端中产生输出。

latexmk 命令行实用程序具有用于清除辅助文件的 -c 选项。

我使用 TexStudio 已经有一段时间了,但我认为它依赖于 latexmk,在 settings/preferences 中,您可以配置对 latexmk 的调用以包含-c 选项。

这些文件既不是不必要的也不是垃圾。如果你删除它们,你将不得不在下次编译代码时花费更多时间,因为你必须多次编译文档,重新运行参考书目工具等。最好不要删除它们,这样会节省很多时间。

如果您真的无法忍受这些文件,请查看 https://github.com/reitzig/ltx2any。如果你用

编译你的文件

ltx2任意文件名

该工具会自动将所有必要的文件复制到一个临时目录中,进行所有必要的编译步骤并复制回结果。通过这种方式,您可以两全其美,您拥有一个干净的目录,而 latex 拥有编译文档所需的所有文件。

要在texstudio中使用这个,你可以添加一个用户命令:

(作为复制和粘贴的文本:<your path to the program>/ltx2any -lf raw -synctex % | txs:///view-pdf