编译后自动删除生成的乳胶(垃圾)文件?
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
- 在 TexStudio
中打开 Preferences/Build
- Select 高级选项在底部
- 添加名称为
cleanjunk
的新用户命令
- 作为命令,输入:
"/PATH/TO/SCRIPT/cleanlatexjunk.sh" -fp ?me ?a)
并相应地更改 /PATH/TO/SCRIPT/
- 在 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
)
我想知道是否有简单的命令可以删除在latex编译过程中生成的所有不需要的文件,例如.aux、.log 等
最好将它链接到常规的 Latex 构建命令,这样在我点击 "Compile" 后,垃圾文件就会被删除。
作为编辑工具,我使用的是TeXstudio。
我创建了一个 shell 脚本,它完全符合您的要求。它适用于 Mac 和 Linux;通过一些调整 Windows 应该也是可能的。从我的存储库下载文件 "cleanlatexjunk.sh" 并按照说明进行操作:
https://github.com/cgraumann/LatexUtils
- 在 TexStudio 中打开 Preferences/Build
- Select 高级选项在底部
- 添加名称为
cleanjunk
的新用户命令
- 作为命令,输入:
"/PATH/TO/SCRIPT/cleanlatexjunk.sh" -fp ?me ?a)
并相应地更改 /PATH/TO/SCRIPT/ - 在 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
)