
我这两周前后帮三个师弟师妹把 TeX Live 重新装了一遍分别在 Windows 11、Ubuntu 22.04 和 macOS 上各跑了一次完整流程。本来以为这活儿闭着眼都能干结果每台机器都给我整出了新花样有下载到一半断掉的有装完之后xelatex找不到的还有中文编译出来一排方框的。所以干脆把 texlive2023 的安装从头到尾捋一遍把图形安装器里每个选项、命令行里每个参数、以及那些官方文档里不爱提的坑都摊开写清楚。TeX Live 2023 是 2023 年 3 月发布的完整 LaTeX 发行版它把编译器、宏包、字体、文档和一堆辅助工具打包成一个整体装一次基本能覆盖日常写论文、排版书籍、做幻灯片的全部需求。这篇文章是给那些准备在本地搭一套稳定排版环境的人看的不管你是刚接触 LaTeX 的新手还是想从旧版本迁移过来的老用户流程和参数都能直接照抄。下面按平台分步展开顺带把我踩过的坑一并交代。1. 先想清楚为什么装本地发行版而不是用在线工具1.1 TeX Live 解决的到底是什么问题很多人一开始会问现在网页上就能写 LaTeX为什么还要在本地装好几个 G 的东西。这个问题的答案取决于你的使用场景。在线编辑器方便是方便但它依赖网络、依赖别人的服务器编译时长、可用宏包、字体库都受限制遇到需要自定义字体、需要跑上百页的大型文档、或者要批量编译几十个文件的时候体验就会明显下滑。TeX Live 的核心价值就在于它是一个自包含、可离线、宏包齐全的发行版安装完之后你拥有一套完全处于本机掌控之中的编译链路。从结构上看TeX Live 2023 主要由几个部分组成底层引擎pdftex、xetex、luatex等、格式文件、宏包树texmf-dist、平台相关的二进制程序以及管理工具tlmgr。理解这个分层很重要因为后面排查问题时你至少要能判断到底是二进制没进 PATH还是宏包缺失还是字体路径没配。我见过不少人一报错就重装其实大部分问题在几分钟内就能定位。另一个常被忽略的点是版本锁定带来的稳定性。在线工具的底层环境随时可能升级某天早上你发现昨天还能编译的文档今天报错了这种事很让人抓狂。本地装好 TeX Live 2023 之后只要你不主动执行tlmgr update环境就是冻结的什么时候编译结果都一致。对于要投论文、要交给出版社的文档这种可复现性比什么都重要。1.2 2023 版相比旧版我实际感受到的变化TeX Live 每年发布一个大版本2023 这一版最直观的变化是宏包仓库的整体更新很多数学、化学、绘制类宏包都同步到了当年的稳定状态。对普通用户来说日常能感知到的差异其实不大但如果你的文档里用到了较新的宏包语法旧版本就可能出现命令未定义的报错。我这次帮人迁移时就遇到一篇论文里用了某个较新的表格宏包特性2021 版编不过换成 2023 才正常。版本号本身也关系到后续维护。TeX Live 的跨版本升级是一件比较折腾的事——官方并不推荐在原目录上直接升年份通常的做法是装新版本、重新配 PATH、再删旧版本。所以如果现在才准备入坑直接上 2023 是省事的选择。至于已经是 2023 想升 2024 的人年内也可以先用 2023 顶一阵真正需要新特性时再动手。还有一点是关于磁盘占用的。完整方案scheme-full安装后大约占 7 GB 到 8 GB下载的 ISO 镜像本身约 4 GB 出头。这个体量放在今天不算夸张但对固态盘紧张的老笔记本来说还是得掂量一下。我一般建议至少预留 12 GB 的可用空间把安装过程中的临时文件也算进去。1.3 完整版和精简版到底该选哪个安装器里会给出几种方案最容易让人纠结的是 scheme-full 和 scheme-basic 之间的取舍。scheme-full把几乎所有宏包、所有语言支持、全部文档都装上装完就再也不用为缺个包发愁scheme-basic只装最核心的一批体积能压到几百兆到 1 GB 左右但后续遇到缺包得自己用tlmgr install补。我的建议很直接只要磁盘不是特别紧张就选完整版。理由有三点。第一补包虽然是tlmgr install xxx一行命令的事但很多人卡在不知道缺的是哪个包报错信息里给的文件名和包名往往对不上查起来费时间。第二很多宏包之间存在隐式依赖手动补容易漏。第三完整版装完之后离线也能用出差、断网都不影响写作这个体验很实在。当然如果你只是偶尔编个小文档、机器配置又偏低用scheme-basic也完全够用后面真缺了什么再补就行。选择本身没有对错关键是提前想清楚自己的用途别装到一半才后悔。2. 动手之前先把这几件事办了2.1 系统和空间的门槛要心里有数TeX Live 2023 对系统的要求其实不高主流的 Windows 10/11、近年版本的 Ubuntu 及其他 Linux 发行版、macOS 10.14 以上都能顺利安装。真正会卡人的是磁盘和内存。安装过程本身要同时读写大量小文件机械硬盘上耗时会明显拉长我的实测是机械盘上完整安装接近一个小时固态盘大概二十分钟出头。内存方面 4 GB 是底线8 GB 以上会更从容。除了空间和内存还要留意磁盘文件系统。Windows 上装在 NTFS 分区没问题但尽量不要装在带有特殊字符或中文名的路径里也不要装在 OneDrive 这类会自动同步的目录下。我就见过有人装在 OneDrive 文件夹里同步进程一边上传一边被安装器写结果装到一半报文件被占用。Linux 和 macOS 上主要是权限问题装到/usr/local/texlive需要管理员权限这个后面会详细说。提示安装前先把杀毒软件的实时扫描临时关掉或者把安装目录加入白名单。TeX Live 安装时会创建上万个文件实时扫描会显著拖慢速度个别杀软还会误拦二进制程序。2.2 镜像源怎么挑安装包从哪下官方主站不在国内直接从那里拉数据速度会让人怀疑人生。所以第一步不是下载而是换一个就近的镜像站。国内比较好用的有清华 TUNA、中科大 USTC、上海交大等镜像覆盖了 CTAN 的完整内容速度稳定。镜像站上通常有两个东西可以下一个是 ISO 镜像文件一个是网络安装器install-tl-windows.exe或者install-tl-unx.tar.gz。这两者差别不小。网络安装器体积小但安装时要联网逐个下载对网络稳定性要求高ISO 是一个近乎完整的离线包下完之后断网也能装这也是我目前最推荐的方式。以清华镜像为例ISO 的路径在CTAN/systems/texlive/Images/下面文件名类似texlive2023.iso体积约 4 GB 出头。下载工具建议用支持断点续传的浏览器直接下大文件一旦中断就得重来。# Linux 或 macOS 下用 wget 下载 ISO支持断点续传 wget -c https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/texlive2023.iso # 也可以用 curl curl -C - -O https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/texlive2023.isoWindows 上如果不想下 ISO也可以直接下网络安装器install-tl-windows.exe启动后在安装界面里把 repository 改成清华镜像的地址这样下载速度也不会太难看。两种方式我都用过结论是网络稳定就选网络安装器网络一般就老老实实下 ISO。2.3 安装路径和权限的规划路径规划看着事小出问题的时候却很折磨人。Windows 上默认装到C:\texlive\2023我个人建议就用这个默认值不要改成带空格或者中文的路径因为某些宏包在处理路径时对空格支持不完善事后排查非常费劲。Linux 和 macOS 上默认是/usr/local/texlive/2023这需要写权限所以安装命令前面要加sudo。如果你没有管理员权限也可以在用户目录下安装比如~/texlive/2023安装时不需要 sudo缺点是 PATH 要自己配。多用户环境里管理员装一份全局的、每个人改一下 PATH 就能用比每人装一份更省空间。我这次帮实验室机器处理时就是全局装一次然后把路径写进统一的登录脚本。权限这块还有个细节Linux 下全局安装后tlmgr更新宏包需要 sudo如果不想每次都提权可以在装完之后把texlive目录的所有者改成当前用户或者给特定子目录放权。这一条我放在后面的 tlmgr 章节展开因为改权限要小心改错了会导致编译器读不到文件。3. Windows 平台安装全流程3.1 图形安装器里每个选项都掰开说双击install-tl-windows.exe之后会先看到一个欢迎页然后是解压和初始化的进度条等它跳到正式的安装界面才到了真正需要做选择的地方。第一块是 Basic scheme也就是前面说的方案选项为了省事可以直接选 Full installation。下面一行是 Portable setup 的勾选框这个是便携模式勾上之后会把相对路径写进配置装上来的整个目录可以拷到 U 盘里到处跑但如果你只是给本机装别勾。再往下是 Installation root也就是安装根目录默认C:\texlive\2023。这里要留意的就是前面强调的路径规范问题。紧接着是 Options 区域里面有几项值得说明。Use letter size 会把默认纸张设成 Letter国内用户应该把它改成 A4否则新文档的页面尺寸和排版基线会按美式标准来虽然能后期改但提前设好更省事。Adjust search path 一定要勾上它负责把 TeX Live 的 bin 目录写进系统 PATH不勾的话装完命令行找不到编译器得手动配。Create symlinks in standard directories 这一项在 Windows 上一般不勾它是给 Unix 系统用的。还有 Installation for all users 与 Installation for current user 的区别前者要求管理员权限装上之后本机所有账户都能用后者只对当前账户生效。实验室共享机器选前者个人笔记本两者都行。3.2 安装耗时、中断风险和离线方案点下 Install 之后剩下就是等待。用 ISO 离线安装时它会先把镜像里的文件解包再落盘整个过程中磁盘读写非常密集风扇转起来是正常的。我在固态盘上完整装一次大约 22 分钟机械盘接近 55 分钟。这个阶段最忌讳的就是中途手贱去点窗口或者强制关闭那样很可能留下半截安装后面启动tlmgr会报数据库不一致。如果用的是网络安装器进度条里会出现大量下载记录这时候网络一抖就可能卡住。遇到卡住别急着结束进程先看它是真的断了还是在缓慢重试安装器带断点重试逻辑稍微等一下往往会自己恢复。要是确实卡死了结束进程重新运行安装器它一般能接着上次的位置继续不用担心从头再来——这也是为什么我更推荐先用 ISO网络变量的干扰能少一大截。装完后安装器会给出一个 Close 按钮但不要以为点完就万事大吉。它可能提示你需要重启终端好让新的 PATH 生效。Windows 的 PATH 变更对已经打开的旧终端不生效所以验证之前先把之前开的 cmd 或 PowerShell 全关掉重新开一个。3.3 装完立刻验证的三个命令安装是否成功用三条命令就能确认不需要打开任何编辑器。第一条tex --version看是否输出版本号正常会显示TeX 3.141592653之类第二条xelatex --version这个是你后面编中文的关键引擎第三条tlmgr --version用来确认宏包管理器可用。三条都通说明 PATH 配对了环境是活的。tex --version xelatex --version tlmgr --version如果前两条报 不是内部或外部命令八成是 PATH 没写进去或者被别的 TeX 发行版抢了优先级。这时候打开系统环境变量检查 Path 里有没有C:\texlive\2023\bin\windows这一条没有就手动加上注意要放在旧版本条目的前面。如果tlmgr报数据库锁或者版本不符多半是安装没跑完重新运行安装器修复即可。4. Linux 和 macOS 上的安装4.1 用 install-tl 脚本走命令行安装Linux 和 macOS 上没有 Windows 那种图形安装器走的是脚本路线。从镜像站下载install-tl-unx.tar.gz之后解压、进入目录、运行脚本即可。如果已经下了 ISO也可以挂载 ISO 后从里面的目录运行同样的脚本这样就是离线安装。挂载 ISO 在 Linux 上用mount -o loopmacOS 上直接双击即可挂载。# 下载并解压网络安装器 wget https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/install-tl-unx.tar.gz tar -xzf install-tl-unx.tar.gz cd install-tl-*/ # 指定镜像源并启动安装全程交互式 sudo ./install-tl -repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/启动后会出现一个文本菜单操作方式和图形界面类似用字母键切换选项。S是选择方案输入scheme-full回车即可D是改路径O是调整选项其中 letter/A4 的设置在这里对应纸张选项。确认无误后输入I开始安装。整个过程不需要图形环境远程服务器上也能装这点比 Windows 方便。macOS 用户还有一个选择是下载官方的 MacTeX.pkg它相当于把 TeX Live 完整版和一套图形工具打包在一起双击安装就行省去命令行步骤。缺点是体积更大、安装时间更长而且它会自动在/Library/TeX/texbin建符号链接。如果你更喜欢自己掌控路径就还是用install-tl脚本。4.2 PATH、MANPATH、INFOPATH 一次配明白命令行装完最大的问题就是 PATH。脚本不会自动帮你写进 shell 配置需要手动加。以 Ubuntu 为例编译好的二进制在/usr/local/texlive/2023/bin/x86_64-linux这个平台后缀不同机器可能不一样ARM 机器上是aarch64-linux所以配之前先用ls看一眼实际目录名别照抄路径。# 追加到 ~/.bashrc 或 ~/.zshrc export PATH/usr/local/texlive/2023/bin/x86_64-linux:$PATH export MANPATH/usr/local/texlive/2023/texmf-dist/doc/man:$MANPATH export INFOPATH/usr/local/texlive/2023/texmf-dist/doc/info:$INFOPATH改完之后执行source ~/.bashrc让配置生效然后同样用tex --version验证。注意 PATH 的顺序TeX Live 的路径要放在系统包管理器路径的前面否则你敲latex时可能用到系统里那个残缺的老版本编译行为会和预期不一致。MANPATH 和 INFOPATH 不是必须的但不配的话man latex查不到手册查文档时会有点不方便。注意如果你用的是 fish 或 zsh配置文件的写法和位置不一样。zsh 改~/.zshrcfish 要用set -Ux语法不要直接把 bash 的 export 语句粘过去。4.3 tlmgr 换源与日常维护tlmgr是 TeX Live 的宏包管理器日常补包、更新、卸载都靠它。刚装完默认的仓库地址可能指向海外源更新时会很慢所以第一件事是换源。换源命令是tlmgr option repository后面跟镜像地址。改完之后用tlmgr update --list看一眼可更新的列表确认能正常连上。# 切换到清华镜像源需要 sudo sudo tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet # 查看可更新项不实际执行 sudo tlmgr update --list # 更新自身 sudo tlmgr update --self这里有个很多人会踩的坑当新的 TeX Live 大版本比如 2024发布之后tlnet这个源会切换到新版本此时 2023 版的tlmgr再去连它就会报 Local TeX Live (2023) is older than remote repository更新直接失败。解决办法是改连归档源地址结尾从tlnet换成tlnet/archive。归档源里保留的是 2023 那一代的宏包能正常更新只是不会再有新内容。这个细节官方文档提得不多但迟早会遇到。5. 中文排版打通引擎、字体和编辑器5.1 ctex 与 xeCJK中文编译链路怎么选TeX Live 装好只代表引擎就绪中文能不能正常排出来是另一回事。核心原则是中文文档优先用 XeLaTeX 编译。老的pdflatex处理中文字体非常麻烦要生成字体描述文件、要配置映射新手几乎不可能一次搞定。xelatex直接调用系统字体配合ctex宏包开箱就能用这是目前最省心的路线。ctex宏包会自动处理中文的断行、标点挤压、字体切换等细节你不用自己去调。文档类可以直接用ctexart、ctexrep、ctexbook也可以在自己熟悉的文档类里加载ctex宏包。后者的好处是既能保留原有模板的排版风格又能拿到中文支持。我给别人改论文模板时基本都用后者改动量最小。xeCJK是更底层的方案ctex其实是在它之上做的封装。只有在需要精细控制中西文间距、自定义标点规则的时候才需要直接碰xeCJK。日常写作不用管这么深知道有这么一层就行。5.2 字体配置在 Windows 和 Linux 上的差异字体是中文排版最容易翻车的地方。ctex会根据操作系统自动挑选默认中文字体在 Windows 上它用宋体、黑体、仿宋、楷体这四套系统字体这些字体基本都预装了所以很少出问题在 Linux 上它会退回到自带的 Fandol 字体集Fandol 是随 TeX Live 一起安装的覆盖常用汉字但如果你的文档里出现了生僻字就可能显示成空白。如果你希望 Linux 和 Windows 上编译出来的效果一致最稳妥的办法是显式指定同一套字体。比较通用的做法是装一套思源宋体/思源黑体然后在导言区用\setCJKmainfont指定。这样跨平台时不会因为默认字体不一样导致行距和换行位置变化对于要交稿的文档来说这点很重要。\documentclass[UTF8]{ctexart} % 显式指定中文字体跨平台更稳定 \setCJKmainfont{Source Han Serif SC} \setCJKsansfont{Source Han Sans SC} \begin{document} 你好这是一段中文测试文字用来验证字体是否正常加载。 \end{document}字体找不到时会报 font not found 之类的错误这时候先用fc-list | grep 字体名Linux或者到系统字体目录里确认名字注意字体名要用字体内部名称而不是文件名两者经常对不上这是新手最常犯的错。5.3 编辑器配置要点和一个最小样例引擎和字体都通了接下来就是找个顺手的编辑器。VS Code 配 LaTeX Workshop 插件是目前比较流行的组合装完插件后在设置里把默认编译工具设成xelatex保存时自动编译、PDF 反向定位这些功能都能开起来。TeXStudio 是另一套成熟选择图形界面更完整适合完全不想碰配置文件的人。两者都能用看你习惯哪种交互。不管用哪个编辑器验证环境的最小样例都是同一个一段带中文的短文档用xelatex编译看能否生成 PDF 且中文正常显示。这个测试能一次性验证引擎、宏包、字体三条链路。我习惯在装完之后立刻跑一遍把结果记下来以后换机器时作为基准。编译命令很简单注意要跑两次以正确生成目录和交叉引用第一次编译生成的.aux文件第二次才会被读进去。如果文档里有参考文献还要加跑 BibTeX 或 Biber 的步骤再用 xelatex 收尾。xelatex test.tex xelatex test.tex6. 踩过的坑与排查速查表6.1 安装阶段最常遇到的几个问题安装阶段的问题基本集中在下载和权限两块。下载慢、下载中断根源都是源不对或者网络波动最直接的解法是换成本地镜像或者干脆下 ISO 离线装。我这次帮人装的时候就遇到网络安装器下到 60% 卡住不动的情况换成 ISO 之后一次成功。安装器卡住时不要强杀进程可以先等两分钟它内部有重试逻辑。权限问题在 Linux 上比较突出。全局安装必须加sudo但sudo会带来一个副作用装出来的文件所有者是 root后续用普通用户执行tlmgr更新时就会报权限不足。解决办法有两个一是每次更新都加sudo二是把安装目录的所有者改成自己。改所有者之前要确认目录里没有需要 root 才能写的特殊文件改完之后用kpsewhich测试一下读取是否正常。还有一种情况是机器上已经装过旧版 TeX新装完之后命令行调用的还是旧版。这类问题的特征很明显tex --version显示的年份不对。检查 PATH 里新旧两个目录的顺序把新版放到前面或者把旧版目录整体移除。多个发行版共存容易引发各种诡异问题能清理就清理别留着。6.2 编译期的典型报错与处理思路编译期报错五花八门但有几类出现频率特别高。第一类是 Filexxx.sty not found意思是缺宏包。这时候用tlmgr search --global --file xxx.sty找到对应的包名再用tlmgr install 包名 装上即可。别看到报错就猜包名用搜索命令查是最快的路径。第二类是字体相关报错前面讲过多半是字体名写错或者字体没装用系统字体查询命令核对一下就行。第三类是 TeX capacity exceeded通常出现在超大表格或超长公式里说明某个内部容量被撑爆了。TeX Live 2023 的默认容量已经比早年宽松很多真遇到的话可以通过调整texmf.cnf里的参数解决但在动手改之前先看看是不是文档本身写得有问题比如嵌套过深、单行内容过长。很多时候优化一下源码比改配置更有效。表格是环境问题速查最直观的方式下面这张表把常见症状和对应处置放在一起遇到问题时可以快速对号入座。症状可能原因处置方式命令找不到PATH 未配置或顺序错误检查并调整 PATH重启终端缺 sty 文件宏包未安装tlmgr search查包名后 install中文显示方框字体缺失或名称错误核对系统字体内部名称并指定tlmgr 报版本过旧源已切到新版本改用tlnet/archive归档源安装卡住网络波动或杀软拦截换镜像或离线安装关实时扫描PDF 目录为空编译次数不足连续执行两次 xelatex6.3 几条没写进文档的经验最后分享几条我实际折腾下来觉得最有用的经验。第一条是装完先备份配置。把 PATH 相关的设置、编辑器配置、常用的宏包列表记到一个文本文件里下次换机器或者重装时直接照抄能省下大把时间。环境类的东西最容易忘而恰恰是最耗时的那部分。第二条是不要频繁更新。tlmgr提供全量更新很方便但更新是双刃剑新版本宏包偶尔会引入不兼容变动把本来能编的文档搞挂。我的做法是文档定稿期间完全不更新等周期结束、手头没有紧急任务时再统一升一次。这个习惯帮我避免了好几次临交稿前环境崩掉的窘境。第三条是保留一份 ISO。网络说变就变镜像站偶尔也会维护手头留一个 ISO 镜像文件任何时候都能重装出一个干净环境。我习惯把它和安装笔记放在同一个目录里几年下来已经成了固定的环境急救包。TeX Live 2023 现在还很稳短期内没有非升不可的理由把它当成长线环境用下去完全没问题。