latex3/latex2e · 上手攻略
- 仓库:latex3/latex2e
- 链接:https://github.com/latex3/latex2e
- 分类:academic-writing
- 作者:Tom
- 更新:2026-08-20
这是什么
latex3/latex2e 是 The LaTeX Project 维护的 LaTeX2e 内核源码仓库。它托管了 LaTeX 核心发行版的开发源码,包括内核本身(base)、文档(doc)、必需工具(tools)、图形与颜色支持(graphics)、数学支持(amsmath)、LaTeX 急救包(firstaid)以及 latex-lab 实验性模块。
⚠️ 重要澄清:这个仓库不是普通用户获取 LaTeX 的途径。普通用户应通过 TeX Live、MacTeX 或 MiKTeP 等发行版来安装 LaTeX。这个仓库仅对 LaTeX 内核开发者和需要报告 LaTeX 核心 bug 的用户有实际意义。
解决什么问题
对于大多数 LaTeX 用户:没有问题需要解决——你用的 TeX 发行版已经为你处理了一切。
对于 LaTeX 内核贡献者或 bug 报告者:这个仓库提供了:
1. 追踪 LaTeX2e 内核开发进度的窗口
2. 向 LaTeX 团队报告核心 bug 的标准格式(所有 bug 报告必须以 \RequirePackage{latexbug} 开头)
3. 理解 LaTeX 宏包机制和内核源码结构的入口
快速安装
普通用户请勿从此仓库构建 LaTeX,正确方式:
# TeX Live(Linux/macOS/Windows WSL)
# 下载 ISO:https://mirror.ctan.org/systems/texlive/Images/texlive2024.iso
# 或使用网络安装
tlmgr install latex-base # 核心包
# macOS
brew install --cask mactex
# Windows
# 下载 MiKTeX:https://miktex.org/download
开发者 / 报告 Bug:如果你是向 LaTeX 团队报告内核 bug,先 clone 此仓库,然后按 CONTRIBUTING.md 的指引准备最小复现文件:
git clone https://github.com/latex3/latex2e.git
cd latex2e
# 阅读 CONTRIBUTING.md
cat CONTRIBUTING.md
所有内核 bug 报告文件必须以 \RequirePackage{latexbug} 开头,仓库会自动生成标准 bug 报告模板。
核心用法
理解仓库结构
仓库采用多bundle组织(对应 LaTeX 内核的不同组件):
latex2e/
├── base/ # LaTeX 内核本身(最核心)
├── doc/ # 官方文档(开发版)
├── required/ # 必需组件
│ ├── tools/ # essential tools(炉火纯青的工具集)
│ ├── graphics/ # 图形与颜色支持
│ ├── amsmath/ # 数学支持(美国数学会出品)
│ ├── firstaid/ # LaTeX 急救(第三方包兼容补丁)
│ └── latex-lab/ # 实验性新功能
├── .github/ # CI 配置
├── CONTRIBUTING.md
└── README.md
⚠️ L3 编程层独立:从 2020 年起,L3 编程层(expl3 等)已成为 LaTeX 格式的一部分,但其源码托管在单独的仓库 latex3/latex3。涉及 L3 编程命令的问题应向 latex3/latex3 报告。
报告 LaTeX 内核 Bug 的标准流程
- 确认问题来自 LaTeX 内核(而非第三方包);如果使用了第三方包,先去掉这些包再复现
- 创建最小示例文件,以
\RequirePackage{latexbug}开头:latex \RequirePackage{latexbug} \documentclass{article} \begin{document} % 在此描述问题 \end{document} - 在 github.com/latex3/latex2e/issues 提交 Issue
查看 LaTeX 版本
LaTeX 版本定义在 base/ltvers.dtx 中的两个命令:
- \fmtversion:主版本号(如 2024-11-01)
- \patch@level:补丁级别;负值表示预发布版本
典型适用场景
- LaTeX 内核开发者:跟踪开发分支的进度,提交 PR
- LaTeX bug 报告者:准备符合规范的 bug 报告
- TeX 发行版维护者:打包新的 LaTeX 版本时参考源码
- 好奇的高级用户:了解 LaTeX 内核的工作原理(例如
\parshape或\output路由的实现)
坑与注意
-
⚠️ 不要从此仓库安装 LaTeX:README 明确写道"building a working version from the sources is a non-trivial exercise"。从源码构建需要处理大量依赖和构建步骤,普通用户请直接用 TeX Live / MacTeX / MiKTeP。
-
Babel 已独立:2019 年起 Babel 从本仓库移出至 latex3/babel,Babel 相关问题不要在此报告。
-
L3 编程层在另一个仓库:expl3 / xparse / l3kernel 等在 latex3/latex3,不要混淆。
-
第三方包 bug 不受理:LaTeX 生态有数千个第三方包,仓库 README 明确说明无法帮助第三方包问题,这类问题应找各包的维护者。
-
贡献门槛高:LaTeX 内核对稳定性要求极高,任何变更都需要在"修复问题"和"影响现有文档"之间仔细权衡,非核心开发者很难直接上手贡献。
-
pretrain 版本判断:如果
\patch@level为负值,说明是预发布版本,不建议在生产环境使用。
与同类对比
| 资源 | 类型 | 适用人群 | 备注 |
|---|---|---|---|
| 本仓库 | 内核源码 | LaTeX 开发者 / bug 报告者 | ⚠️ 非安装途径 |
| CTAN | TeX 包分发站 | 所有 TeX 用户 | 查找/下载宏包 |
| TeX Live / MacTeX / MiKTeP | 发行版 | 所有 TeX 用户 | 正确安装方式 |
| latex3/latex3 | L3 编程层 | LaTeX 宏开发者 | 单独仓库 |
| TeX StackExchange | 社区问答 | 所有 TeX 用户 | 日常问题求助 |
| LaTeX Project 官网 | 官方文档 | 所有 TeX 用户 | latex-project.org |
一句话推荐结论
LaTeX 内核开发源码仓库,非安装途径;普通用户请通过 TeX Live/MacTeX/MiKTeP 安装;开发者可通过 CONTRIBUTING.md 规范化提交 bug 报告,或跟踪内核开发进度。
来源:https://github.com/latex3/latex2e(README + 主要文档)