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 的标准流程

  1. 确认问题来自 LaTeX 内核(而非第三方包);如果使用了第三方包,先去掉这些包再复现
  2. 创建最小示例文件,以 \RequirePackage{latexbug} 开头: latex \RequirePackage{latexbug} \documentclass{article} \begin{document} % 在此描述问题 \end{document}
  3. 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 路由的实现)

坑与注意

  1. ⚠️ 不要从此仓库安装 LaTeX:README 明确写道"building a working version from the sources is a non-trivial exercise"。从源码构建需要处理大量依赖和构建步骤,普通用户请直接用 TeX Live / MacTeX / MiKTeP。

  2. Babel 已独立:2019 年起 Babel 从本仓库移出至 latex3/babel,Babel 相关问题不要在此报告。

  3. L3 编程层在另一个仓库:expl3 / xparse / l3kernel 等在 latex3/latex3,不要混淆。

  4. 第三方包 bug 不受理:LaTeX 生态有数千个第三方包,仓库 README 明确说明无法帮助第三方包问题,这类问题应找各包的维护者。

  5. 贡献门槛高:LaTeX 内核对稳定性要求极高,任何变更都需要在"修复问题"和"影响现有文档"之间仔细权衡,非核心开发者很难直接上手贡献。

  6. 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 + 主要文档)