2026 最全 LaTeX 编译工具基准测试:速度、易用性、输出全维度打分

发布于 2026-07-04 16:28:41

全文中文翻译:哪款 LaTeX 构建工具速度最快?完整基准测评

作者:Martin Isaksson

引言

对于科研人员和开发者来说,LaTeX 漫长的编译耗时是巨大痛点,严重拉低写作效率。问题根源在于 LaTeX 文档的编译逻辑复杂,市面上可供选择的构建工具又五花八门。本文将对主流 LaTeX 编译工具做完整横向对比,帮各位作者选出最适配自己的方案。选对构建工具,能大幅缩短等待编译的时间,让你把更多精力投入论文内容本身。

多年前我写硕士毕业论文时,用原生 latex 搭配 dvips 编译踩了无数坑。从那之后,我不断迭代自己的编译流程:简化操作、提升速度、适配各类新功能。漫长的编译等待让我尝试过五花八门的提速方法,但网上关于 LaTeX 加速的讨论大多是人云亦云,缺乏严谨实测数据支撑——明明是科研人常用的排版工具,相关优化讨论却毫无“科学精神”。

本文将完整拆解各类本地 LaTeX 编译方案,对比不同构建工具的优劣。读完这篇测评,你大概率会换掉现在正在用的编译工具。

背景知识

为什么不直接用 Overleaf?

Overleaf 固然好用,但本地 LaTeX 编译环境在不少场景下具备独特优势。
最大优势是 完全可控:本地环境里,你能自主掌控 TeX 发行版、所有宏包、全局配置与编辑器环境。对我个人而言,本地编译带来的隐私与数据安全是最核心的理由。

Overleaf 的优势集中在云端协作:多人可实时同步编辑同一篇文档,无需手动安装、维护 TeX 环境,对新手门槛极低。

LaTeX 环境安装

不同系统、不同定制需求对应的安装方式各不相同,本文不展开细说,感兴趣可以查阅《LaTeX 安装指南》《免费 TeX 实现方案》。安装完成后,《LaTeX 项目初始化教程》《学术写作十大必备宏包》是两份很实用的入门资料。

LaTeX 文档编译原理

LaTeX 采用 多遍编译 机制,以此实现目录、图表清单、交叉引用、术语表、索引、参考文献等功能。单次编译生成中间文件,作为下一轮编译的输入,整套流程环环相扣。

编译流程链路:
.tex → pdflatex/xelatex → 直接生成 .pdf
.tex → latex → .dvi
.dvi → dvips → .ps → ps2pdf → .pdf
.dvi → dvipdfm/dvipdfmx → .pdf

本文目标是输出 PDF 文件,不同编译链路各有优劣,但本次测试统一选用同一套标准流程。

想要生成带参考文献、术语表的完整 PDF,标准多轮编译步骤共 7 步:

  1. LaTeX 首轮编译:运行 pdflatex 读取 tex 源文件,生成 .aux 中间文件,存储引用、交叉标注、术语条目;使用 glossaries-extra 宏包还会额外生成 .ist.acn 文件。
  2. BibTeX 处理参考文献:读取 .aux 文件与 .bib 参考文献库,生成格式化参考文献文件 .bbl
  3. makeglossaries 生成术语表:读取术语定义,生成术语展示所需中间文件。
  4. 第二轮 pdflatex:载入 .bbl 参考文献,文中引用位置会显示 [?],编号暂未对齐。
  5. 第三轮 pdflatex:完整整合术语表,修正引用编号。
  6. 重复编译至全部引用解析完成:根据文档复杂程度,可能需要多次执行 pdflatex,消除所有未定义引用警告;本次测试文档仅需 3 轮 pdflatex。
  7. 输出最终 PDF:所有数据整合完毕,生成成品 PDF。

各类 LaTeX 中间文件后缀含义可查阅《LaTeX 文件后缀大全》《aux 辅助文件详解》。

测试方案

测试用文档

本次测试文档基于 IEEE 会议论文模板修改,额外加入 BibTeX 参考文献、glossaries-extra 术语表,附带 3 张示例图片(同时提供 eps、pdf 两种格式,省去图片转换耗时)。插入图片时省略后缀,写法示例:

\includegraphics[width=.9\linewidth]{example-image-a}

文档共 4 页:
第 1 页:论文标题、示例图;
第 2 页:正文公式、格式规范;
第 3 页:参考文献列表;
第 4 页:术语缩写对照表。

IEEE template test document page 1: title and example figure

IEEE template test document page 2: references section

IEEE template test document page 3: reference list and acronym

IEEE template test document page 4: list of acronyms

选用简短文档是为了控制单次编译耗时,方便重复大量测试。文档完整源码可在 Overleaf 查看。

计时测量标准

编写专用计时脚本完成对比测试:每个编译方案执行 make clean test.pdf 25 次,通过 /usr/bin/time 统计平均耗时,所有工具分为不同组别逐一测试。

全工具实验测评

1. 原生命令手动编译

最传统、几乎没人日常使用的编译方式,仅作完整度补充,完整命令流程:

pdflatex test
bibtex test
makeglossaries test
pdflatex test

2. arara

由 TeX 社区开发的自动化编译工具,通过源码内注释配置编译流程,语法直观清晰,可自定义 pdflatex、bibtex、术语表等全套步骤。
在 tex 文件头部添加配置注释即可自动执行:

% arara: pdflatex
% arara: bibtex
% arara: makeglossaries
% arara: pdflatex until !found('log', 'undefined references')

3. latexmk

TeX Live 自带的老牌自动化编译工具,自动判断需要执行几轮编译,解决引用、术语表、参考文献多轮编译问题。可通过 .latexmkrc 配置文件扩展支持 makeglossaries,示例配置:

add_cus_dep('glo', 'gls', 0, 'run_makeglossaries');
add_cus_dep('acn', 'acr', 0, 'run_makeglossaries');

sub run_makeglossaries {
  if ( $silent ) {
    system "makeglossaries -q '$_[0]'";
  }
  else {
    system "makeglossaries '$_[0]'";
  };
}

push @generated_exts, 'glo', 'gls', 'glg';
push @generated_exts, 'slo', 'slg', 'sls';
push @generated_exts, 'acn', 'acr', 'alg';
$clean_ext .= ' %R.ist %R.xdy';

编译命令:latexmk -pdflatex -bibtex -r latexmkrc main.tex
Overleaf 后台底层编译工具正是 latexmk,相关定制逻辑可查阅官方文档。

4. rubber & rubber-info

和 latexmk 定位相似的自动化编译工具,自动处理全套依赖;rubber-info 可一键查看文档错误、未定义引用、溢出警告。
编译命令:rubber -d -m glossaries test.tex
校验命令输出示例:

❯ pipenv run rubber-info test.tex
无报错
无未定义引用
无警告
无盒子溢出问题

5. SCons

基于 Python 的通用开源构建系统,可用于搭建复杂 LaTeX 项目,编写 SConstruct 脚本定义编译目标:

import os
env = Environment(ENV=os.environ)
pdf_output = env.PDF(target='test.pdf', source='test.tex')
env.Precious(pdf_output)

Precious 函数作用:标记 PDF 为核心目标,清理中间文件时不会删除成品 PDF。

6. latexrun

Python 开发的轻量化 LaTeX 构建工具,适配大型工程化流程,自动处理循环编译依赖,错误、警告输出做了友好美化。本次测试使用支持 makeglossaries 的二次开发分支。

7. 预编译导言区提速

文档导言区(宏包、格式配置)改动频率极低,可提前预编译生成 .fmt 格式缓存文件,大幅减少重复编译耗时。
拆分文件:导言区末尾添加 \endofdump

% 固定导言代码
...
\endofdump

预编译命令:

latex -ini -jobname="preamble" "&latex" mylatexformat.ltx "preamble.tex"

正文文件开头读取缓存:

%&preamble
\endofdump
\begin{document}
...

补充说明:该方案与 glossaries 宏包存在兼容坑点,已有相关讨论。

8. Ramdisk 内存盘加速

将项目目录挂载至内存盘,用高速内存替代硬盘读写,显著缩短编译耗时;不同操作系统挂载命令不同,本文不展开系统操作步骤。

9. 编译参数优化

  • batchmode:屏蔽终端冗余输出,减少 IO 开销,适合文档无大量报错时快速编译;
  • draftmode:编译时跳过图片渲染,仅做基础排版,初稿快速预览专用。

使用示例:pdflatex -interaction=batchmode test.tex

10. dvips 传统编译链路

pdfLaTeX 出现前的老式工作流,先生成 dvi 文件,再转 PostScript 最终输出 PDF,两条主流链路:

  1. latex → dvips → ps2pdf
  2. latex → dvipdfm 直接转 PDF

流程繁琐,仅作历史方案对比。

11. llmk

2025 年推出的轻量 LaTeX 构建工具,极简配置:支持 .llmk.toml 配置文件或 tex 内魔法注释,无需复杂脚本,自动多轮编译,但本次实测速度垫底。
编译命令:llmk document.tex

实测结果

测试标准:每组方案重复 25 次,结果为平均耗时 ±95%置信区间;四大评价维度:编译速度、控制台输出行数、PDF 体积、配置代码字符长度。

1. 编译耗时对比(核心指标)

编译方案平均耗时(秒)
max_combo(全优化组合)2.23 ± 0.08
preamble(仅预编译导言)2.31 ± 0.04
latex_dvipdfmx_z02.49 ± 0.02
latexrun_ramdisk_preamble2.50 ± 0.02
latex_dvipdfmx / latex_dvipdfm2.51
latexrun_preamble2.52 ± 0.02
latex_dvips_batchmode_draftmode2.54 ± 0.03
batchmode_draftmode / draftmode / original 原生流程2.79~2.80
latexrun / latexrun_ramdisk2.81
rubber / arara3.55
latexmk_overleaf / latexmk3.69~3.71
SCons3.91
llmk5.62 ± 0.02

Bar chart of build times in seconds across 15+ build methods; preamble-based methods are fastest

关键结论

  1. max_combo(预编译导言+内存盘+draft/batch 参数)全场最快,仅 2.23 秒,比原生基础流程快 20%,比 latexmk 快 40%;缺点是配置复杂。
  2. 新款工具 llmk 速度垫底,耗时接近 latexrun 两倍;
  3. 提速优化对长篇论文同样生效:实测一篇 IEEE 论文,latexrun 耗时 16.87 秒,latexmk 需要 25.71 秒。

2. 控制台输出整洁度(stdout 行数越少越好)

latexrun、arara、rubber 输出极简,仅打印报错与警告,冗余信息极少;llmk、原版 latexmk 输出上千行日志,阅读困难。latexrun 还自带彩色错误提示,排错效率大幅提升。

Bar chart of stdout line count per build method; latexrun and arara produce the fewest output lines

3. 上手易用程度

以配置文件+Makefile 总字符数作为量化标准,字符越少代表配置越简单:
latexrun、arara、rubber 配置极简;预编译导言、内存盘、max_combo 全优化方案配置代码最长,上手门槛高。

Bar chart of Makefile target character count per build method, used as a proxy for ease of use

4. PDF 输出体积

老式 dvipdfm/dvipdfmx 链路生成的 PDF 体积最小;开启压缩参数 compress 后文件体积最大,日常使用中体积差异影响不大。

Bar chart of PDF file size in bytes across build methods; significant variation despite identical input document

5. 综合最终评分(速度+易用+输出整洁加权打分)

全场综合第一名:latexrun_ramdisk_preamble(内存盘+预编译导言+latexrun),兼顾速度、简洁输出、低配置成本;
第二名:arara;
纯速度优先选 max_combo,新手懒人优先 latexrun。

相关研究

除本文测评的专用 LaTeX 工具外,通用构建系统(SCons、GNU Make、Snakemake、CMake)均可搭建 LaTeX 编译流水线;另有多款小众 LaTeX 构建工具因篇幅未纳入对比,后续计划补充测评。

如果论文包含大量 TikZ、pgfplots 矢量图,建议开启图片外部化缓存,大幅减少绘图编译耗时;也可通过 Matplotlib 生成矢量图,减轻 LaTeX 渲染压力。

讨论与测评局限性

  1. 本次仅测试 pdflatex 引擎:多数 IEEE 期刊、会议强制要求 pdflatex,LuaLaTeX、XeLaTeX 未做同步测试,优化结论不一定完全通用;Tectonic 引擎因底层替换 pdfLaTeX,未纳入对比;
  2. 仅覆盖主流工具:LaTeX 生态持续更新,仍有小众、专用构建工具未参与测评,欢迎在评论区补充你常用的工具;
  3. 未统计项目目录整洁度:latexrun 生成的中间文件最少,目录干净,该维度未量化打分;
  4. 选型需结合自身环境:Windows/macOS/Linux、TeX Live/MiKTeX 对各工具兼容性存在差异。

常见问答 FAQ

Q1:我应该选用哪款构建工具?

通用全能首选:latexrun + 预编译导言。控制台输出干净、报错友好、速度接近天花板,配置简单,兼顾绝大多数论文场景。
极致速度需求、能接受复杂配置:选 max_combo 全套优化方案。

Q2:测试结论对几百页学位论文有效吗?

有效。文档篇幅增长后,各工具的速度差距会进一步拉大,latexrun 相对 latexmk 的提速优势会更明显。

Q3:LuaLaTeX、XeLaTeX 用户能照搬这套优化吗?

全部测试基于 pdflatex,多数学术期刊强制使用该引擎;其他引擎可参考提速思路,但工具实测数据不具备参考性。

Q4:llmk 为什么编译速度最慢?

本次测试未定位具体性能瓶颈,推测是内部多轮检测逻辑冗余,后续会单独做专项拆解。

总结

撰写 LaTeX 论文时,选对构建工具是极易被忽略、却能大幅提升写作效率的关键一步。横向对比所有工具后,latexrun 是综合最优解:兼顾编译速度、输出可读性、跨场景通用性。

省下等待编译的每一秒,都可以用来打磨你的研究内容。

AI 说明

基准测试原始数据采集于 2023 年;2026 年 6 月更新内容(新增 llmk 测评、重构易用性评分标准、全文优化)借助 Anthropic Claude 大模型辅助完成。

引用格式(BibTeX)

@misc{isaksson_2023,
  author="Isaksson, Martin",
  title={{Martin's blog --- Which LaTeX Build System Is Fastest? A Benchmark}},
  year=2023,
  url=https://blog.martisak.se/latex-build-systems-comparison/,
  note = "[在线文档;访问时间2026-07-01]"
}

选自:https://blog.martisak.se/latex-build-systems-comparison/

0 条评论

发布
问题