做学术汇报、投期刊论文、写毕业论文,大多数人早晚会和LaTeX撞上。第一次体验“写代码式排版”,很多人的第一反应是:Word用得好好的,为什么非要折腾这玩意儿?直到你被Word里的公式编号、图表目录、参考文献格式折腾到崩溃,再回过头用LaTeX,基本上就回不去了。而使用LaTeX的第一步,就是装一套靠谱的发行版,目前的主流选择毫无疑问是TeX Live。
这篇文章不是官方文档的搬运,是我自己从零开始、在Windows和Linux环境各装了一遍TeX Live之后整理的完整过程。里面既有标准步骤,也有很多官方文档里不会写、但实际必踩的坑,比如Perl后端报错、中文用户名路径问题、编译引擎选错导致中文变方块之类。无论你是学生写论文,还是工程师要排版技术文档,照着这篇走一遍,应该能少浪费不少时间。
1. 安装前先想明白的三件事
1.1 为什么默认推荐TeX Live,而不是MiKTeX或MacTeX
LaTeX本身只是一个“排版语法”,真正干活需要一套发行版,常见的有TeX Live、MiKTeX和MacTeX。很多人第一次接触时会在这些名词里绕晕,我的建议很简单:如果你是新手,或者主要在Windows/Linux上使用,直接选TeX Live。
原因有三个。第一,TeX Live是跨平台的,Windows、Linux、macOS都能装,而且宏包非常全。macOS上有个MacTeX,本质上是TeX Live的mac优化版,只是额外集成了若干GUI工具,如果你是Mac用户装MacTeX也没问题。第二,TeX Live的许可证和生态最干净,宏包更新用tlmgr统一管理,源也稳定。第三,网上绝大多数中文LaTeX教程默认就是TeX Live环境,你后面遇到问题搜答案时,环境一致会省很多事。
MiKTeX的优势是“按需安装宏包”,装起来小很多,但它对宏包缺失的处理在断网或离线环境下会很痛苦,而且国内用的人相对少,教程偏少。我在实际教学中见过太多人折腾MiKTeX到最后又换回TeX Live,所以这篇就直接以TeX Live为主线。
1.2 安装前先检查系统环境和用户名路径
在动手之前,先做两分钟的检查,能避免后面很多麻烦。第一个是老生常谈但必须说的:磁盘空间。TeX Live完整安装(full scheme)在2026版大约需要10GB左右,如果你选择只装基础版,也需要至少2GB。建议提前留出15GB以上的空闲空间,别装到一半提示磁盘不够,那场面真的很难受。
第二个检查容易被忽略,就是Windows用户名和系统临时目录路径。如果你的用户名是中文,比如C:\Users\张三,或者你计划把TeX Live装到含中文的路径里,我强烈建议你换一个方案。LaTeX的工具链里有大量Perl脚本和历史悠久的命令,它们对非ASCII路径的支持非常差,装好后可能连编译最简单文档都会报匪夷所思的错误。这不是“一定会出问题”,但一旦出了,排查成本会非常高。所以我建议:安装路径用纯英文,项目文件路径也别放中文目录下,后面少流点眼泪。
第三个检查是你电脑上是否装过其他Perl相关软件,例如Strawberry Perl、ActivePerl,或者某些开发工具自带的Perl。这个和后面一个高频报错有关,先记着这一条,等安装出问题时你会感谢这个提醒。
1.3 提前选一个离你近的TSM镜像源
TeX Live的安装有两种常规路径:一是下载完整的DVD ISO镜像(大约5-6GB),二是下载一个几百KB的install-tl引导程序,运行后在线拉取所需文件。我用下来的建议是,国内用户尽量别直接连官方源,速度飘忽不定,万一中途断网重来一遍真的崩溃。
网络安装时,install-tl会让你选择镜像仓库(repository),这时候直接换成国内高校镜像,比如清华、中科大、阿里云的镜像站。具体地址不写死也没关系,格式在各大镜像站首页都有说明,一般长这样:https://mirrors.xxx.edu.cn/CTAN/systems/texlive/tlnet。提前在浏览器里把镜像地址复制出来,装的时候直接粘贴,能省不少等待时间。
如果你下载的是ISO离线包,安装时可以完全不联网,速度取决于硬盘读取。离线安装的好处是稳定,缺点是ISO版本可能比较旧,装完后需要再用tlmgr更新一次宏包。
2. TeX Live安装全程实录
2.1 Windows图形界面安装:新手最稳的选择
以2026版本为例,从官方或镜像站下载install-tl.zip压缩包,解压后找到install-tl-windows.bat文件。这里我建议你右键选择“以管理员身份运行”,否则可能出现权限不足导致某些目录写入失败的诡异问题。
运行后会弹出一个图形客户端。默认界面简洁,点击“Advanced”进入高级设置,你在左下角能看到“Repository”相关设置,把之前准备好的国内镜像地址填进去。接着在“Scheme”一栏选择“full scheme”,即安装全部宏包。虽然占空间大,但对你后续写普通文档、论文、幻灯片、图表,基本不会遇到“某个宏包没装”的问题。初学者不建议从这里就开始精简,等你有经验了再搞“按需安装”。
设置完成后点击“Install TeX Live”开始安装。接下来就是等待了。完整安装在我的机器上大概跑了40分钟,网络好的情况下可能20分钟就能结束。如果进度条长时间不动,看看是不是镜像源速度问题,或者杀毒软件在后台拦截了写入。Windows Defender偶尔会抽风,安装期间可以选择暂时关闭实时防护,等装完再打开。
安装完成后,图形界面会显示一些路径信息,比如C:\texlive\2026或你自定义的路径。记下来,后面配置环境变量会用到。
2.2 macOS和Linux命令行安装:一条命令的事
在Linux上,安装方式和Windows略有不同,但思路一致。将install-tl压缩包解压后,进入目录执行:
sudo ./install-tl -repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet -scheme full中途会进入字符界面菜单,让你确认安装方案和目录。默认路径是/usr/local/texlive/2026,一般保持默认就行。如果磁盘紧张,可以在菜单中选择“S”进入Scheme设置,切换为medium甚至small,但我不太推荐新手这么做。选好后输入“I”开始安装。
macOS用户其实可以直接下载MacTeX的pkg安装包,双击安装即可,自带TeX Live、LaTeXiT、TeXShop等工具,省心得多。如果你想用命令行安装,方式和Linux一样。区别在于macOS需要安装Command Line Tools for Xcode,否则部分工具链可能因为缺少编译环境报错,这个可以在App Store或者开发者网站装好。
安装速度取决于网络和镜像。国内连官方源有时只有几百KB/s,换成国内镜像后基本能跑满带宽。装完后,Linux用户可以用which tex验证一下,如果找不到命令,说明还需要手动配置PATH(下面有专门一节)。
2.3 安装过程中的三个典型卡点
我把安装过程中最容易卡住的情况先列出来,免得你到时候手足无措。
第一是网络下载很慢或者安装中途报“Connection failed”。这种情况多半是源选得不合适,或者公司/校园网对源地址有访问限制。建议直接停掉安装,重新运行install-tl,在Repository设置里换成另一个镜像源。不用怕中断,TeX Live支持断点续装,重新跑起来它会接着下载,不会一切从头再来。
第二是弹窗报错,提示“error while reading from perl back end”。这个非常典型,尤其Windows机器上如果已经装了Strawberry Perl或ActivePerl,很容易触发。原因在于TeX Live的安装程序是Perl写的,系统PATH里混杂了其他Perl版本,安装程序内部的Perl前后端通讯就乱掉了。解决思路是:临时把其他Perl相关目录从PATH中移除或改名,关闭杀毒软件实时监控,再以管理员身份重新运行install-tl。装完TeX Live后再恢复原来的环境。
第三是安装到某个宏包时反复失败,进度条总是滚回去。极有可能是文件被安全软件隔离了,或者是硬盘分区格式有问题(比如FAT32不支持4GB以上大文件)。检查一下安装目录所在分区是不是NTFS或ext4格式,并查看杀毒软件的隔离日志,再把相关文件加入白名单。
2.4 装完以后看看目录结构,心里才有底
安装结束不代表万事大吉,我建议你花两分钟看一眼TeX Live的目录结构,这能让你之后排错时心态稳很多。以Windows为例,如果装到了C:\texlive,你会看到:
C:\texlive\2026\bin\windows:存放可执行文件,比如xelatex.exe、latexmk.exe、tlmgr.exe,环境变量本质就是指向这个目录。C:\texlive\2026\texmf-dist:所有宏包的源码和样式文件,宏包缺失时基本也在这里面找。C:\texlive\2026\tlpkg:TeX Live的包管理器元数据,tlmgr的“数据库”就在这里。C:\texlive\texmf-var:运行过程中生成的缓存、字体等临时文件。
Linux下的结构基本一样,区别只是bin目录会根据CPU架构变成x86_64-linux或aarch64-linux。
理解这些目录的作用后,当报错提示“找不到某个sty文件”时,你就知道去texmf-dist/tex/latex下面翻一翻;当你发现某次编译字体缓存异常时,也知道去texmf-var里清理。这些都是正规教程很少提的“黑暗知识”,但很管用。
3. 环境变量与编辑器联调
3.1 PATH配置:让系统认出tex命令
安装过程中,install-tl默认会尝试帮你配置PATH。Windows下如果选了“Add to PATH”,一般不用再手动改。但如果你安装时没勾选,或者安装后命令提示符输入tex --version提示找不到命令,那就需要手动配置了。
Windows的操作路径是:右键“此电脑” → “属性” → “高级系统设置” → “环境变量”,在“系统变量”里找到Path,点编辑,新增一行指向C:\texlive\2026\bin\windows(改成你自己的实际安装路径)。完成后重新打开一个CMD窗口,输入tex --version验证。
Linux和macOS下,把以下内容加入~/.bashrc(或~/.zshrc):
export PATH=/usr/local/texlive/2026/bin/x86_64-linux:$PATH然后执行source ~/.bashrc生效。如果你用的是zsh,记得改成~/.zshrc。
路径中的架构名字要根据实际目录调整,macOS是universal-darwin,Linux非x86架构可能是aarch64-linux。可以用ls /usr/local/texlive/2026/bin先看看目录名到底是什么。
3.2 验证安装:这几条命令跑通就算成功
配置完PATH后,我习惯用一套固定命令验证安装是否完整:
tex --version latexmk --version xelatex --version tlmgr --versiontex出现说明基础命令可用;xelatex对中文用户尤其重要,因为后续编译中文文档基本依赖它;latexmk是自动编译工具,能替你把BibTeX索引、交叉引用等多次编译流程自动处理好;tlmgr是宏包管理器,以后装宏包全靠它。
如果四条命令都能正常打印版本信息,恭喜你,TeX Live本体的安装算是彻底没问题了。如果某一条找不到命令,优先检查PATH是否包含对了目录,再看看有没有装对应平台的可执行包。
3.3 编辑器选型:TeXstudio、VS Code还是Overleaf
环境装好了,接下来考虑在哪里写代码。我接触过的编辑器主要三类,各有取舍。
如果你是第一次接触LaTeX,想最快速度看到效果,我建议先试TeXstudio。它自带代码补全、结构导航、公式预览、一键编译,左下角会直接显示编译日志,错误定位非常直观,几乎没有配置门槛。缺点是编辑器界面稍显老旧,但作为入门工具完全够用。
如果你像我一样日常用VS Code写代码,那直接给VS Code装上LaTeX Workshop扩展就行。这扩展非常好用,支持自动编译、SyncTeX反向定位(PDF里点一下跳回代码)、多Recipe选择。缺点是需要自己写一点配置,新手容易卡在settings.json上,下面我会给一份可直接用的配置。
如果你不想在本地折腾环境和依赖,Overleaf是近乎完美的选择。浏览器打开就能写,所有宏包线上都有,编译结果秒出。适合协作修改、期刊投稿模板初稿,甚至很多SCI期刊都直接提供Overleaf模板。它唯一的短板是,离开网络或者团队需要本地编译时,你还是要依赖本地环境。所以我的建议是:本地TeX Live必须装,Overleaf拿来当“便携搭档”。
3.4 VS Code + LaTeX Workshop配置实录
如果你选择VS Code,我这里直接给一份经过多轮验证的配置,复制到settings.json即可:
{ "latex-workshop.latex.recipes": [ { "name": "xelatex", "tools": ["xelatex"] }, { "name": "latexmk", "tools": ["latexmk"] } ], "latex-workshop.latex.tools": [ { "name": "xelatex", "command": "xelatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" ] }, { "name": "latexmk", "command": "latexmk", "args": [ "-xelatex", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" ] } ], "latex-workshop.latex.autoBuild.run": "onSave", "latex-workshop.view.pdf.viewer": "tab" }这份配置默认用xelatex做编译,应对中文文档没问题;如果你想自动处理参考文献,把默认Recipe切换为latexmk即可。-synctex=1这个参数很关键,它让PDF和源码能双向定位,写大论文时,在PDF里点击某一行能直接跳回源码位置,修改效率高很多。-interaction=nonstopmode则保证编译遇到错误时不会卡在那里等你输入,而是直接输出日志,适合自动化处理。
配置完成后,新建一个main.tex文件,按Ctrl+Alt+B可以手动编译,按Ctrl+Alt+V打开PDF预览。第一次编译如果报找不到xelatex,回头检查PATH是否配置正确。
4. 第一个文档与中文支持踩坑
4.1 最小可编译示例
配置好后,很多人习惯先拷一个长模板,结果一堆宏包报错,直接劝退。我建议从最小文档开始,确认链路通畅再慢慢加功能。在main.tex里写:
\documentclass{ctexart} \begin{document} 你好,LaTeX! \end{document}编译引擎选XeLaTeX,按下编译按钮,如果生成了PDF并且正确显示中文,说明你的LaTeX环境已经可以干活了。
有可能你下载的新版本里ctexart模板有更新,无论如何,这个最小示例都能让你快速区分是“环境问题”还是“代码问题”。值得说明的是,ctex宏包会自动匹配系统里的中文字体,在Windows下它通常能找到中易宋体或雅黑;在Linux下则需要提前安装CJK字体,比如Noto CJK系列。
4.2 中文支持方案和编译器选择逻辑
国内用户写LaTeX,最核心的问题是中文支持。现在的通用方案就是一句话:用XeLaTeX或LuaLaTeX引擎,加上ctex宏包。不要再用古老的pdfLaTeX配合CJK包了,那是十来年前的模式。
举一个区别的例子。你写:
\documentclass{article} \usepackage[UTF8]{ctex} \begin{document} 这是中文测试。 \end{document}如果用pdfLaTeX编译,大概率会报错或者显示乱码;用XeLaTeX编译,顺利输出中文。原因在于XeLaTeX原生支持Unicode,系统字体直接可用,而pdfLaTeX依赖的是传统8位编码方案,对中文的处理既别扭又容易出问题。
所以请记住:中文文档默认编译链是“XeLaTeX”。
如果你不想每次手动选引擎,可以在文件第一行写“魔法注释”:
% !TEX program = xelatex很多编辑器,包括TeXstudio和VS Code的LaTeX Workshop,都会读取这个注释并自动切换编译引擎,非常实用。
4.3 插入图片、表格和公式的基本写法
环境通畅之后,写论文最常用的三样东西:图片、表格、公式。这里给出一个能直接运行的综合示例:
\documentclass[11pt]{article} \usepackage[UTF8]{ctex} \usepackage{graphicx} \usepackage{booktabs} \usepackage{amsmath} \usepackage{geometry} \geometry{a4paper, margin=2.5cm} \begin{document} \section{示例} \begin{figure}[htbp] \centering \includegraphics[width=0.6\textwidth]{example.png} \caption{示例图片} \label{fig:example} \end{figure} \begin{table}[htbp] \centering \begin{tabular}{lcr} \toprule 名称 & 数量 & 价格 \\ \midrule 苹果 & 3 & 5.0 \\ 香蕉 & 5 & 3.5 \\ \bottomrule \end{tabular} \caption{示例表格} \label{tab:example} \end{table} \begin{equation} E = mc^2 \label{eq:mass} \end{equation} \end{document}图片方面,graphicx宏包是必须的,支持PNG、JPG、PDF、EPS等格式。[htbp]控制浮动体位置,含义是“here, top, bottom, page”,LaTeX会按这个顺序寻找合适的位置。表格里的lcr分别代表左、中、右对齐;booktabs宏包提供清爽的横线样式,比默认的竖线风格专业得多。公式用amsmath宏包,支持各种复杂编号和对齐环境。
如果你需要表格单元格内自动换行,可以用p{宽度}列类型,比如p{3cm}表示这一列固定宽度3厘米并能自动换行。这是很多新手会卡住的地方——默认的列类型不会换行,内容长了就溢出。
5. 常见问题与故障排查速查
5.1 高频报错与排查思路
这里我整理了一张速查表,基本覆盖了新手阶段90%的问题。当编译出错时,不要慌,先看日志最前面的“! 错误”,再对照表格定位。
| 报错或表现 | 常见原因 | 解决方法 |
|---|---|---|
| 中文显示为方块、乱码 | 用了pdfLaTeX或缺少中文字体 | 改用XeLaTeX,安装CJK字体,加载ctex宏包 |
| 找不到xx.sty | 宏包缺失或未更新 | 用tlmgr install 宏包名安装 |
| tlmgr更新失败 | 镜像源失效或版本过期 | 用tlmgr option repository 镜像地址更换源 |
| 编译卡住不动 | 日志交互模式等待输入 | 加-interaction=nonstopmode参数 |
| VS Code无法编译 | PATH未配置或Recipe错误 | 检查xelatex路径,核对settings.json |
| 图片不出现在预期位置 | 浮动体位置参数不对 | 用[htbp],或改用\FloatBarrier |
| 参考文献显示为问号 | BibTeX未跑或编译次数不足 | 用latexmk,或手动执行4次编译 |
| 字体缓存报错 | 安装后字体缓存未更新 | 执行luaotfload-tool -u或清除texmf-var缓存 |
5.2 “error while reading from perl back end”深入分析
这个报错值得单独开一节,因为搜索热度实在太高,而且它非常唬人。我第一次遇到时还以为是安装包坏了,后来才发现原因往往不在TeX Live本身。
这个报错绝大多数发生在Windows环境。TeX Live的底层管理脚本依赖Perl,安装器内部会启动一个Perl后端进程来处理事务。如果你的系统PATH中存在另一个Perl发行版(尤其是Strawberry Perl),安装器调用的Perl内存结构和后端通讯就会不匹配,于是前台报“error while reading from perl back end”。
解决的优先级我建议这样操作:
- 临时从PATH中移除或重命名其他Perl安装目录,让系统只认识TeX Live自带的Perl。
- 以管理员身份重新运行安装程序。
- 关闭杀毒软件实时监控,防止它拦截安装器生成临时文件。
- 把安装目录和临时目录(TMP/TEMP)都指向纯英文路径。
- 若以上都不行,放弃在线安装,改用离线ISO镜像安装,完全绕开在线拉取环节。
好多人遇到这个报错就到处找旧版本安装包,其实不是版本问题,环境冲突才是根源。
5.3 中文用户名和中文路径带来的坑
另一类高频问题是Windows用户名或项目路径包含中文。症状通常表现为:安装时一切正常,但首次编译就报“Fatal error occurred, no output PDF file produced!”,或者某些宏包下载成功但在编译时提示文件找不到。
原因是LaTeX工具链中存在大量上古时期传下来的脚本,它们处理文件路径时可能没有正确编码中文,导致内部临时文件名和实际文件名对不上。解决办法有几个层次:
- 最简单的:把项目文件放到纯英文路径下,比如
D:\latex_projects\paper1。 - 再进一步:修改系统TMP和TEMP环境变量,指向纯英文目录,比如
D:\temp。方法同样是打开环境变量编辑器,把TMP、TEMP改成英文路径。 - 如果依然有问题,就要认真考虑创建一个英文用户账户,或者重装系统时使用英文用户名了。很多人觉得重装系统夸张,但当你写毕业论文到关键阶段,每天都被这种环境问题折磨时,这一步反而是最省时间的。
只能说,老话常提“不要用中文做用户名”,到了LaTeX这里尤其成立。
5.4 宏包缺失与tlmgr更新技巧
写LaTeX时经常遇到这种情况:模板里写了一个宏包,但编译时提示“File ‘xxx.sty’ not found”。这多半是因为安装时选了精简版,或者发行版版本比较旧,宏包库更新不及时。
解决办法分两步。第一步,明确宏包名,报错信息里一般会显示。第二步,使用tlmgr安装:
tlmgr install 宏包名比如缺ctex宏包就执行tlmgr install ctex,缺beamer就执行tlmgr install beamer。这个工具是从TeX Live仓库拉取宏包的,所以前提是网络和仓库源正常。
如果你在国内,建议先把tlmgr的仓库源切换成国内镜像:
tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet tlmgr update --self --all第一条命令设置镜像地址,第二条命令把包管理器和所有已安装宏包更新到最新状态。更新过程可能比较久,建议在稳定的网络环境下执行。更新完后,再编译你之前报错的文档,往往问题就消失了。
另外一个小技巧:当模板要求众多宏包而你懒得一个一个装的时候,可以在编译日志里搜not found关键字,把缺失宏包批量整理出来,写一个for循环批量安装。这样能省下大量重复操作时间。
在我实际使用过程中,最深的体会是:LaTeX的安装配置本质上不复杂,真正的门槛在于你遇到了问题而不知道问题出在哪个环节。把“环境变量-编译引擎-宏包管理”这条主链路摸清楚,后面就算遇到陌生报错,也能顺着日志一层层往下查。希望这篇指南能帮你少走一段弯路,把时间留给真正重要的论文和文档本身。