告别 LaTeX 编译后的「文件海洋」:三招打造极致整洁的科研工作流

April 20, 2026 By Zircon

每一个 LaTeX 用户恐怕都经历过这种“视觉污染”:

在文件夹里点击一次编译,原本干干净净的 .tex 源码旁边,瞬间会蹦出一大堆 .aux.log.toc.synctex.gz 等副产物。这些文件虽然是 LaTeX 记录交叉引用和页码的“临时大脑”,但散落在根目录下实在让人抓狂。

清理之前

今天分享三招,教你如何优雅地把这些中间文件“关进笼子”或者一键消灭,让你的项目目录永远保持极简状态。

清理之后

第一招:VS Code 自动重定向(从源头拦截)

如果你使用 VS Code + LaTeX Workshop 插件(这是目前最主流的组合),其实可以给 LaTeX 装修一个“密闭厨房”。

通过修改 VS Code 的设置,我们可以强制要求所有的副产物都生成在一个独立的文件夹中,而不是污染你的源码区。

操作步骤:

  1. 在 VS Code 中按 Cmd + , (Mac) 或 Ctrl + , (Win) 进入设置。

    VS Code 设置入口

  2. 搜索并修改以下两项:

    • latex-workshop.latex.outDir:设置为 %DIR%/out
    • latex-workshop.latex.autoClean.run:设置为 onBuilt

    设置截图

原理:

  • outDir:以后所有的中间文件都会自动跑进一个叫 out 的子文件夹。
  • autoClean:每次 PDF 生成成功后,插件会自动帮你打扫卫生。你的文件夹里将只剩下源码和最终的 PDF。

第二招:编写 Shell 脚本(暴力美学,一键清理)

如果你习惯在命令行操作,或者想要批量处理多个项目的陈年垃圾,一个简单的自动化脚本是最高效的武器。

我们可以编写一个名为 clean-tex.sh 的通用脚本:

#!/bin/bash
# 递归清理当前目录下及其子目录中所有的 LaTeX 副产物

echo "🧹 正在清理 LaTeX 副产物..."

# 常见的中间文件后缀
find . -type f -name "*.aux" -delete
find . -type f -name "*.log" -delete
find . -type f -name "*.out" -delete
find . -type f -name "*.toc" -delete
find . -type f -name "*.fls" -delete
find . -type f -name "*.fdb_latexmk" -delete
find . -type f -name "*.synctex*" -delete

echo "✨ 文件夹已恢复极致整洁!"

使用建议:

将该脚本保存在你的常用工具目录中,并为其设置一个 alias(别名)。例如在 .zshrc.bashrc 配置文件中添加如下一行:

alias texclean="sh ~/你的脚本路径/clean-tex.sh"

从此以后,你只需在终端任何地方敲下 texclean 这一行命令,整个世界的后缀名就都清净了。

第三招:Git 忽略大法(保持云端纯净)

无论你在本地如何编译,推送到 GitHub 或 GitLab 的代码仓库应该是绝对纯净的。这不仅是为了减小仓库体积,更是为了避免不必要的版本冲突。

在你的项目根目录下创建一个 .gitignore 文件,贴入以下“黑名单”:

# LaTeX 临时文件黑名单
*.aux
*.fdb_latexmk
*.fls
*.log
*.out
*.toc
*.synctex.gz
*.synctex.gz(busy)

有了这份名单,Git 就会自动无视这些文件,你的云端备份将永远只有最核心的源码。

加餐:常见 LaTeX 工具链注解

清理只是入口,下面这几个工具是真正长期用得到的:

  • latexmk:自动判断“还要不要再编译一次”的胶水脚本。命令行直接 latexmk -pdf main.tex,它会替你跑 pdflatex → biber → pdflatex → pdflatex 直到引用稳定。配合 -pvc 还能像热重载一样保存即编译。VS Code LaTeX Workshop 默认 recipe 就是 latexmk。
  • biber:现代 biblatex 宏包的后端,替代老式 bibtex,原生支持 Unicode、多语言、复杂 sorting。源文件用 \usepackage{biblatex} 而不是 \bibliography{...} 时就在用它。报 “biber not found” 通常是 TeX Live 装得不全,重装一下即可。
  • -shell-escape:给 pdflatex 加这个 flag 才能调用外部程序,最常见的需要场景是 minted(带语法高亮的代码块)和 tikz-externalize(缓存 TikZ 图为单独 PDF 加速编译)。安全性弱一点,所以默认关。
  • TikZ externalization:跑 \usetikzlibrary{external} + \tikzexternalize,所有 tikzpicture 会被单独编译成 <jobname>-figure0.pdf 缓存起来,下次再编译主文档跳过 TikZ——长论文从 30 秒缩到 3 秒的关键。

把这套和TikZ 经济学绘图Git 协同工作流接起来:编辑器自动 outDir、命令行 latexmk 一键编译、Git 远端纯净——再也不被中间文件折磨。

结语

作为科研人,我们的精力应该放在模型推导、逻辑构建和实验数据上,不应该浪费在“手动删除垃圾文件”这种琐事中。一套自动化的工作流,不仅是为了视觉上的美观,更是为了让大脑保持在“高信噪比”的状态。

希望这三招能帮你找回那个清爽的文件夹!