TeX Live 的版本号是年份:2024、2026。而且下一年的版本一发布,上一年的版本就地 冻结,再也不会收到常规更新。挑选 LaTeX 发行版之所以和挑选别的软件不太一样,根源就在这个「按年定格」的设计上。实际可选的只有四个:TeX Live、MiKTeX、MacTeX,以及 Linux 发行版自带的那一套。本页用 du 和 tlmgr 实测一棵真实的 TeX Live 2024 目录树,看看四者各自承诺了什么、又没有承诺什么——包括 scheme-full 到底占多少 GB,用量出来的数字说话。
发行版的箱子里到底装了什么
发行版是 CTAN(Comprehensive TeX Archive Network)这座巨型仓库的一份 快照:有人已经替你挑好了一组彼此配合的宏包,并作为整体验证过。它不是「TeX 本体再加几个宏包」。在这台 TeX Live 2024 上清点宏包台账,共 8,238 条,其中 scheme-full 实际装上的是 4,684 条(差额是给其他平台用的二进制子包)。台账分三层:10 个 scheme、41 个 collection,再往下才是单个宏包。\documentclass 要读的类文件、amsmath、latexmk、bibtex,统统挂在这棵树的某处。
那么容量都花在哪儿了?对这棵树跑 du -sh,输出是 8.7G,其中仅 texmf-dist/doc 就占 3.7 GB,里面装着 10,099 个 PDF。字体 2.9 GB,可执行文件 522 MB。换句话说,完整安装里将近一半是「拿来读的」而不是「拿来跑的」。这 3.7 GB 才是发行版沉默的重心:敲 texdoc siunitx 就能不联网打开官方手册,正是因为手册早已躺在你的硬盘上。为省空间砍掉 doc,等于把这项能力一并扔掉。
# Measure your own installation instead of trusting a number on a web page
tlmgr --version # which yearly release am I on?
kpsewhich -var-value=SELFAUTOPARENT # where does that release live?
du -sh "$(kpsewhich -var-value=SELFAUTOPARENT)"
tlmgr list --only-installed | wc -l # how many packages are presentTeX Live 的「年份」意味着什么:冻结式发行
TeX Live 一年发布一次,新年份的版本一出,上一年的版本就被 冻结。冻结的意思是更新停止,而不是版本作废,更不是 tlmgr 拒绝运行。读一读 tlmgr.pl 本身就会发现:检测到仓库被冻结时,它输出的是一段警告,开头是 TeX Live 2024 is frozen,并说明这发生在新版本已经发布或即将发布之时,然后照常继续。源码里甚至留着一句注释,大意是「别在这里退出,就算仓库冻结了我们也要允许更新」。所以被冻结的年份版本并不是 拒绝 更新,而是已经 没有东西可给 你了。
对于正在挑选发行版的人,这个设计有两面。其一是 可复现性强:在 README 里写下「用 TeX Live 2024 编译」,就等于点名了一个任何人在任何地方都能一模一样重建的环境。写学位论文、投稿、跑 CI 自动出稿时,这一点很值钱。其二是 跨年份可能改变输出,而且宏包更新在年内也会陆续到来——所以经验法则是:截稿前不要做大更新,交稿之后再升年份。另外,tlmgr 在自身过期时不肯先更新别的宏包,也属于这套年度模型的一部分;这一点在「宏包与字体管理」里细说。
scheme-full 实际要占多少 GB
先给结论:在这台 Mac 上,按 scheme-full 装出来的 TeX Live 2024,du -sh 量得 8.7G,而宏包台账为 scheme-full 申报的总量是 8,270,269 KB(约 7.9 GB)。流传很广的「大约 7 GB」如今偏低了。安装程序最先问你的那个 scheme,就是决定这个总量的唯一一手。scheme 之间是嵌套的:scheme 打包 collection,collection 打包宏包;可以在 install-tl 的交互菜单里选,也可以直接用 --scheme scheme-full 这样的写法指定。
| scheme | 内容 | 安装容量 |
|---|---|---|
scheme-infraonly | 只有基础设施,完全不含引擎;供自动化测试用 | 约 7 MB |
scheme-minimal | 只有 plain TeX,不含 LaTeX | 约 56 MB |
scheme-basic | plain TeX 与 LaTeX,够用 Computer Modern 出 PDF 的最小集 | 约 208 MB |
scheme-bookpub | 面向书籍出版:核心 LaTeX 加出版类附加 | 约 317 MB |
scheme-context | 以 ConTeXt 为中心的组合 | 约 461 MB |
scheme-small | 在 basic 上加 XeTeX、MetaPost 与断词表;相当于 MacTeX 的 BasicTeX | 约 477 MB |
scheme-gust | 为波兰 TeX 用户组 GUST 准备的组合 | 约 1.1 GB |
scheme-medium | 在 small 之上再加宏包与语言支持;实用的折中 | 约 1.8 GB |
scheme-tetex | 大致等同于当年的 teTeX:比 medium 宽,离 full 还远 | 约 2.8 GB |
scheme-full | 默认值:CTAN 上能发的全都装,含中日韩支持 | 约 7.9 GB(实测 8.7 GB) |
这张表里藏着两个好笑的条目。台账对 scheme-infraonly 的原文描述是「只含基础设施、完全不含 TeX 引擎的 TeX Live scheme」——一个不含 TeX 的 TeX 发行版(本意是给自动化测试用,之后再用 tlmgr install 单独装被测对象)。另一个是 scheme-tetex。teTeX 是 Thomas Esser 的发行版,1990 年代 Unix 上的事实标准,直到 2006 年 5 月 Esser 本人宣布不再发布新版,并推荐 TeX Live 作为继任者。发行版早已作古,它的规模感却作为一个 scheme 名字,化石般留在 TeX Live 里。
实用判断:只要能腾出 10 GB,就选 scheme-full。理由不在硬盘而在注意力——它把「缺宏包、去找、去装」这件事整个删掉了。空间确实紧张时,scheme-medium(约 1.8 GB)是合理的落点,再从那里按需加 collection。要排中文可加 collection-langcjk(中日韩共用基座),排日文加 collection-langjapanese(scheme-full 里本来就有)。反过来,砍到 scheme-basic 就连 XeTeX 都没有,中日韩更排不了。
MiKTeX 的「即时安装」买到什么,又卖掉什么
要用一句话说清 TeX Live 与 MiKTeX 的区别:MiKTeX 会在排版途中去取缺失的宏包,TeX Live 不会。 MiKTeX 由 Christian Schenk 为 Windows 起手(如今也能跑在 macOS 和 Linux 上),遇到 \usepackage{siunitx} 而本机没有 siunitx 时,会从 CTAN 取来并继续编译,不打断这一趟。这个行为是个设置项,安装时选定、之后可在 MiKTeX Console 改:总是安装/每次询问/从不。它的命令行搭档不是 tlmgr,而是 mpm(MiKTeX Package Manager)。
它买到的东西很清楚:初装体积小,不必为从没加载过的宏包付出好几个 GB。它卖掉的是 可复现性 与 可预测性。离线时,一旦需要新宏包,编译当场停住;在 CI 里,昨天能过的构建今天可能是靠另一个版本的宏包过的。实务中最常踩的是 共享安装的坑:即便 MiKTeX 是「为所有用户」安装的,即时取来的宏包仍会落到该用户自己的 AppData\Roaming 下,而不是共享目录。这正是「在我机器上能编,在同事机器上编不出来」的典型成因。共享电脑或实验室机器上,稳妥的做法是先用管理员模式把需要的宏包一次装齐。
MacTeX 与 TeX Live 到底差在哪
在 TeX 这一层,两者毫无差别。 mactex 是 TUG 的 MacTeX 工作组发布的 macOS .pkg,里面就是同年的 TeX Live 本体:同一个 tlmgr,同一批宏包。加上去的是 macOS 这边的便利——经 Apple 签名与公证、双击即装;把 TeXShop(TeX 专用编辑器)、BibDesk(文献管理)、LaTeXiT(把公式切成图片)、TeX Live Utility(tlmgr 的图形界面)放进 /Applications/TeX/;并附带 Ghostscript。MacTeX-2026 要求 macOS 11(Big Sur)及以上,在 Intel 和 Apple 芯片上都原生运行。
MacTeX 真正值钱的部分其实不是那几个图形程序,而是 它怎么接 PATH。在这台 Mac 上实测:/Library/TeX/texbin 是指向 Distributions/Programs/texbin 的符号链接,后者再指向当前启用年份的 bin 目录。因为写进 PATH 的永远是 /Library/TeX/texbin,升级到明年的版本时 一行配置都不用改。完整包太大时的备选是 BasicTeX,台账自己就把 scheme-small 描述为「相当于 MacTeX 的 BasicTeX」。下载很小,但解开后约 477 MB,请把这笔账算进去。
Linux 发行版自带的那套够用吗
日常用够了,但 想用 tlmgr 的人不该选它。Debian/Ubuntu 的 texlive-full、Fedora 的 texlive-scheme-full,都是把 TeX Live 拆开重装进 OS 的打包体系,依赖与更新归 apt 或 dnf 管。这也意味着 目录树的主人变成了 OS 的包管理器,一般无法再用 tlmgr install 往同一棵树里加东西。想要本周刚上 CTAN 的修正版时,就没辙了。另一个问题是时机:厂商的更新可能比年度发行晚上数月甚至数年,这正是「明明写着 TeX Live 2024,行为却不一样」的常见成因。
到底选哪个:按平台给结论
把四者摆在一起,决定权落在四个问题上:宏包怎么进来、靠什么更新、支持哪些平台、最终多大。容量随所选 scheme 变动很大,下表按 scheme-full 量级给出。还有一个值得知道的平台细节:在 Windows 上装 TeX Live 会连编辑器 TeXworks 一起拿到,因为台账写得很直白——TeX Live 只为 Windows 提供 TeXworks 的可执行文件与支持文件。在 macOS 和 Linux 上,编辑器要自己准备。
| 支持平台 | 宏包如何进来 | 更新工具 | 完整安装容量 | |
|---|---|---|---|---|
TeX Live | Windows / macOS / Linux / Unix | 按 scheme 一次装齐 | tlmgr,图形界面为 tlshell | 实测 8.7 GB |
MiKTeX | 以 Windows 为主(也支持 macOS / Linux) | 编译途中按需自动取得 | mpm,图形界面为 MiKTeX Console | 起步小,越用越大 |
MacTeX | 仅 macOS(11 Big Sur 及以上) | 一次装齐(就是 TeX Live) | tlmgr / TeX Live Utility | 与 TeX Live 相同;BasicTeX 约 477 MB |
texlive-full | Linux(Debian / Ubuntu 系) | 经由 OS 的包依赖一次装齐 | apt 之类;tlmgr 用不了 | 数 GB,取决于厂商的拆包方式 |
- Windows:拿不定主意就选 TeX Live——与其他平台同一年份、同一内容,可复现性上不会有疑问。若硬盘紧张,或就是想要「用到时自动装上」,则选 MiKTeX。
- macOS:MacTeX 是默认答案,靠
/Library/TeX/texbin这套安排,完全不必碰 PATH。带宽或空间紧张时,从 BasicTeX 起步,再用tlmgr加。 - Linux / Unix:最省事的路子是用官方 TeX Live 安装器装进
/usr/local/texlive/。若想自己管宏包,就别用apt的texlive-full,它会把tlmgr拿走。 - CI、Docker、离线:毫不犹豫选 TeX Live。把需要的宏包显式装好,构建就不会依赖 MiKTeX 半途去取东西。
- 中文、日文、韩文:四者都能排 CJK。
scheme-full开箱可用;用较小的 scheme 时,加上collection-langcjk或collection-langjapanese。