简介:《LATEX的教程中文版》是一份系统讲解LATEX排版的中文PDF手册,面向需要撰写学术论文、技术文档与复杂报告的学生、科研人员及工程师,重点解决LATEX语法入门难、排版细节多等痛点。教程从第一份文稿讲起,依次覆盖命令与环境、保留字符、导言区、错误排查、标点与强调、格式控制、字体与颜色、引用与注释、封面与目录、计数器与列表、浮动体与图表、页面设置、抄录与代码环境、分栏等十余个基础主题;后半部分重点讲解行内与行间公式、数学字体、上下标、分式根式、矩阵方程组、数学符号等数学排版内容,并延伸至自定义命令与环境等进阶技巧,示例丰富,循序渐进。压缩包内含1个PDF文件,大小约2.5MB,便于保存与离线查阅。目前已有258人学习/下载,适合零基础自学,也可作为日常排版的查漏补缺参考;无论是论文投稿、学位排版还是技术手册制作,都能从中获得清晰指引。
1. 入门第一课:为什么这份中文LaTeX教程值得先读一遍
我见过太多人学 LaTeX,第一周就放弃了。不是学不会,是被三个东西劝退:全英文的官方文档、看不懂报错的宏包黑匣子、以及对「写代码式排版」这个反人类流程的天然抵触。这份中文 LaTeX 教程(当前版本号 v1.6.4-pre)恰好把这三件事一起解决了:它从第一份文稿开始讲,手把手教你在编辑器里配好 XeLaTeX,用 ctexart 文档类直接写中文;遇到报错还有专门的排查说明;目录带星号标出扩展阅读,新手不需要从头通读到尾,按需跳转就行。比起市面上那些只讲「什么是 LaTeX」的课程资源,它更像一本能随查随用的软件手册和插件速查表。
这篇文章写给两类人。第一类是刚入坑的新手:照着它的顺序,先跑通最小文档,再逐步加图表、公式、自定义命令,这条路线能省掉大量瞎折腾的时间。第二类是已经写过几篇 LaTeX 文档的熟手:你可以跳过基础章,直接看中后段的编译错误分析、CJK 字体调整、参考文献管理这些容易踩坑的部分。我会把手册里值得反复看的几个点拆开讲,也把我自己翻车和排查的过程一并放进来。目标只有一个:让你拿到的不是一份「看过但不会用」的说明书,而是一套能真正落到下一篇论文或报告里的实用方法。
2. 基础篇:从第一份文稿到图表浮动体的上手顺序
2.1 环境配置和第一份文稿:先跑通再学语法
LaTeX 入门最大的误区是上来就啃语法,结果连「怎么编译出一个 PDF」都还没搞明白。我一般会建议先把环境跑通,再回头理解命令。手册第一章就是这么设计的:装好发行版、选好编辑器、编译第一份文档,十分钟内看到「你好,世界」出现在 PDF 里,后面所有的学习才有意义。
工具链的选择可以参考这套组合:发行版选完全免费的 TeX Live,虽然安装体积大,但它一劳永逸,扩展包最全,跨平台,也不需要像老方案那样折腾字体和宏包的依赖关系。编辑器用 TEX Studio,理由很简单:界面里直接有常用的符号面板、结构导航和同步查看,比在记事本里写体验好一个量级。关键一步是默认编译器选 XeLaTeX,这不是玄学,而是因为 XeLaTeX 能直接调用系统字体处理中文,配合 ctex 文档类几乎不用额外配置。英文文档当然也能编译,所以把 XeLaTeX 设为默认是最省心的方案。第一份文稿长这样:
\documentclass{ctexart} \begin{document} Hello, world! 你好,世界! \end{document}第一行 \documentclass 指定文档类,ctexart 是中文 article 文档类,它会自动处理好中文字体和标点压缩。正文必须放在 \begin{document} 和 \end{document} 之间,这是 LaTeX 的基本结构。从这份最小文档开始,后面所有内容都是在往里加东西。编译按钮在工具栏上,生成的 PDF 会出现在 tex 文件所在目录。我见过不少人第一遍编译就盯着完整论文的模板研究,半天都跑不通;正确的做法是先让这份三行文件编译通过,再逐步扩展。
2.2 命令、环境与保留字符:最容易踩雷的部分
跑通最小文档之后,接下来要搞清楚两个核心概念:命令和环境。命令通常由反斜杠开头,后面跟命令名和花括号参数,比如 \documentclass{ctexart};如果还有可选参数,会放在方括号里,比如 \documentclass[a4paper]{ctexart}。环境则是一个区块,用 \begin{名字} 开始、\end{名字} 结束,例如表格、公式、列表全都是以环境的形式出现的。判断一个写法对不对,先分清它是命令还是环境,逻辑就顺了一半。
真正容易踩雷的是保留字符。LaTeX 里有八个符号被赋予了特殊含义:# $ % & ^ _ { } \。它们的用途分别是:# 用来标注自定义命令里的参数序号,$ 表示进入数学环境,% 是注释符,& 是表格里的跳列符,^ 和 _ 分别代表数学环境里的上下标,花括号用来分组,反斜杠用来开始一切命令。问题是用户往往要在普通正文里原样输出这些符号,此时就需要转义。除了反斜杠本身,其余符号前面加一个反斜杠就能输出:
\# \$ \% \^ \& \_ \{ \}反斜杠的输出稍微特殊一点,可以写成数学环境的 $\backslash$,或者用等宽字体里的 \texttt{\char`\}。这里 \char 命令是输出某个 ASCII 码对应的字符,92 正好是反斜杠。还有一个高频翻车点是波浪线符号:~ 在 LaTeX 里代表「此处不允许断行」的空格,直接打是打不出来的,要用 \textasciitilde。这些细节在写路径、写特殊符号时几乎必遇,查一次记住,后面能少报二十次错。
格式控制相关的几个命令也建议在第一周内过一遍。空格和换行在源码里怎么写并不重要,LaTeX 会把连续空白压成一个空格;想要真正换行用双反斜杠,分段用空行,分页用 \newpage。引号方面,左引号是英文状态下连续两个反引号,右引号是两个单引号,而不是直接敲英文双引号。破折号和省略号也有专门写法:两个连字符是短横,三个是破折号,省略号用 \ldots。强调文字用 \textbf 和 \textit,删除线需要额外加载 ulem 宏包再使用 \sout。这些小命令单独看都很简单,但把它们组合好,文档的观感立刻从「业余」变成「专业」。
2.3 图表浮动体与页面设置:理解「浮动」才不翻车
图表大概是新手最先遇到门槛的地方。插入图片的方式看起来很直观:
\begin{figure}[htbp] \centering \includegraphics[width=0.6\textwidth]{figure.png} \caption{这是图片标题} \label{fig:demo} \end{figure}但很多人的第一反应是:为什么图片没有出现在我写代码的那个位置?原因在于 figure 是浮动体。LaTeX 为了保证版面整洁,会按参数里的 h(这里)、t(页顶)、b(页底)、p(独立浮动页)的顺序,自动把图片「搬」到它认为最合适的地方。这不是 bug,而是排版系统的设计哲学:先保证版面美感,再谈代码顺序。明白了这一点,图表乱跳就不再让你焦虑。
表格的基础写法是用 tabular 环境,列格式里 l 左对齐、c 居中、r 右对齐,列之间用 & 分隔,行尾用双反斜杠。但学术场景我更推荐三线表:用 booktabs 宏包,顶部用 \toprule、中间 \midrule、底部 \bottomrule,去掉全部竖线,这是期刊最流行的样式。需要跨页的长表格可以用 longtable,手动指定列宽则用 p{宽度} 列格式。这些技巧在手册「浮动体与图表」一节都有实例,直接抄就行。页面设置方面,边距用 geometry 宏包:\usepackage[a4paper, margin=2.5cm]{geometry};页眉页脚用 fancyhdr;字体和颜色由 fontspec 与 xcolor 负责;分栏可以把文档类选项改成 twocolumn,或用 multicol 宏包实现局部多栏。熟练掌握这组工具,排版层面的大多数需求都能覆盖。
3. 避坑排查篇:中文排版与编译报错的血泪经验
这一章集中写我踩过也见过别人踩的几类问题,全部按「现象 → 原因 → 解决」的顺序整理。LaTeX 的报错机制比较特殊,经常出现「报错指向的行并不是真正有问题的那一行」的情况,所以排查思路比具体命令更重要。
3.1 中文乱码与字体问题
现象:编译通过,但 PDF 里中文全部消失,或者变成方块;更惨的情况是直接报错退出,日志里有 fontspec 或 xeCJK 相关的字样。
原因:最常见的两个,一是编译器选错了,用了默认的 pdfLaTeX 而不是 XeLaTeX,导致中文字体链路完全断裂;二是系统里缺少文档用到的中文字体,或者字体缓存没有刷新。旧教程里流行的 CJKutf8 方案在今天已经显得过时,和 ctex 文档类混用时还容易冲突。
解决:先确认默认编译器是 XeLaTeX,文档类用 ctexart 或 ctexrep;再确认系统装了常用中文字体。Linux 用户尤其要注意,装好字体后要刷新字体缓存,手册里提到的 fc-cache 命令就是干这个的:fc-cache -fv,跑一次再重新编译。Windows 和 macOS 下一般没这个烦恼,但换过字体后也建议重新编译一次。另外,不要在同一个文件里同时加载 CJKutf8 和 xeCJK,二选一,新项目直接选 xeCJK。
3.2 目录引用编号不对
现象:第一次编译后目录是空的,或者正文里的交叉引用位置显示两个问号「??」。
原因:LaTeX 的编译不是一遍完成的。第一遍编译时,文档会把章节编号、图表编号、引用关系写入 aux 和 toc 文件;第二遍编译才把这些信息读回来填进目录和引用位置。所以「编译一次」看到的编号永远是不可靠的临时数据。
解决:连续编译两遍。TEX Studio 的「构建并查看」按钮会自动判断是否需要二次编译,比手动按两遍稳妥。如果编译了很多遍编号还是错乱,极有可能是辅助文件损坏,直接删掉该目录下的 aux、toc、lof、lot 等中间文件,重新编译一遍通常就能恢复。我曾经有一次引用错乱折腾了很久,最后删 aux 文件立刻就好了,从那以后我把它列为排查标准动作。
3.3 特殊字符与宏包冲突翻车现场
现象:正文里写了 Windows 路径 C:\Users\test,编译报错;写了英文下划线 data_2024,编译报错;看到日志里提示某个宏包文件找不到。
原因:反斜杠是命令起始符,下划线是数学下标符,都是保留字符;宏包找不到则往往是名字拼错,或者这个发行版里压根没装对应扩展包。
解决:路径里的反斜杠直接写成斜杠,绝大多数场景都能接受;必须显示反斜杠用 \textbackslash 或 \texttt{\char\\};下划线在普通文本里用 \textunderscore 输出。宏包报 File not found 时,先到命令行用 texdoc 查正确拼写:texdoc listings`,它会直接打开该宏包的官方文档;确认拼写没问题再去包管理器里安装。这里值得多说一句:LaTeX 的宏包生态是典型的「用得越深越容易冲突」,比如 hyperref 和某些老宏包就有兼容性问题。遇到冲突别硬解,先看日志里提示的是哪个宏包,把不常用的一方注释掉做对比测试,十次里有九次能定位到元凶。
4. 数学排版篇:从行内公式到多行公式的路线
数学公式是 LaTeX 相对于 Word 的最大优势,也是大多数人学它的直接动机。手册里数学排版这一章的密度很高,但核心路线其实只有三步:先会写行内和行间公式,再掌握矩阵、分式、多行公式和编号控制,最后按需查数学符号表。
4.1 行内与行间公式:先从最小可编译开始
行内公式用一对美元符号包起来,比如 $x^2$,它适合在正文里引用变量名或简短表达式。行间公式有两种写法:用 [ ... ] 可以得到不编号的独立公式;用 equation 环境则会自动编号。新手常犯的错误是把整个段落塞进公式环境,或者行内公式写得过长,导致单词间距被撑坏、出现 Overfull 警告。经验是:行内公式只放短表达式,超过半行就改为行间公式;行间公式要换行重排,不要在一行里堆多个公式。
数学环境里的空格规则和普通文本完全不同。普通文本的空格会被忽略掉,数学环境里想控制间距需要显式用 , : ; \quad \qquad 这些命令。间距从小到大依次递进,quad 大约是当前字号下的大写字母宽度,公式里的常见间距微调用前三个就够了。字体方面,\mathrm 输出正体,\mathbf 输出粗体,\mathbb 需要 amsfonts 宏包支持,用来表示实数集、整数集这类符号。这些命令的用途搞清楚以后,即使临时忘掉某个具体符号,也知道去手册的哪一节查。
4.2 矩阵、分式、多行公式与编号:几个高频命令
分式用 \frac{分子}{分母},根式用 \sqrt[开次方]{被开方数},上下标用 ^ 和 _,这是数学排版的三块地基。它们的核心问题是「括号」:LaTeX 不会自动放大括号,所以要写 \left( \right)、\left[ \right] 让括号随内容高度自动伸缩。比如常见的求根公式:
\begin{equation} x = \frac{-b \pm \sqrt{b^2-4ac}}{2a} \end{equation}\pm、\sqrt、\frac 都在这一行里体现,\left ... \right 的用法换成更大块的分式时感受会更明显。矩阵方面,matrix 不带括号,pmatrix 带圆括号,bmatrix 带方括号,行用双反斜杠分隔,列用 & 分隔。分段函数用 cases 环境。多行公式是论文写作里出现频率最高的场景,主流写法是 align 环境:
\begin{align} f(x) &= x^2 + 2x + 1 \\ &= (x+1)^2 \end{align}& 用来指定对齐位置,放在等号左边;\ 表示换行。align 环境默认每行都编号,不想要某行编号就在该行末尾加 \notag;相反地,如果用的是不编号的环境却想给其中一行加编号,可以用手册里补充的 \numberthis 命令。还有两个细节容易被忽略:多行公式太长要跨页时,加上 \allowdisplaybreaks 允许它自动分页;公式和文字混排时可以匹配 \multicolumn 实现表格内嵌公式,这是普通文字处理器很难做到的。
4.3 数学符号:优先查表而不是背命令
数学符号的数量多到不可能一次背完,硬记是最高效的反例。我一般会花十分钟浏览一遍手册的「数学符号与字体」表,记住大类规律:希腊字母用 \alpha、\beta、\gamma,大写版本把首字母大写(\Gamma);二元运算符集中在 \pm、\times、\div、\cdot;关系符是 \leq、\geq、\approx、\equiv;箭头是 \to、\rightarrow、\Rightarrow。剩下的符号,比如各种复杂算符和定界符,用到时直接查表。TeX Live 自带一份完整的符号文档,命令行跑texdoc symbols-a4就能打开,比在网页上搜到的老旧资料准确率高得多。学会查表本身,也是从「新手照抄」走向「熟手自取」的标志。
5. 进阶篇:自定义命令、箱子和参考文献体系
基础排版跑通以后,真正拉开效率差距的是进阶部分。手册把进阶章定义成「自定义命令与环境」,我认为这是整本手册含金量最高的一节,因为它是从「用别人写好的宏包」过渡到「写自己的模板」的分水岭。
5.1 自定义命令与环境:写自己的模板
写论文时如果同一个表达式反复出现十几次,效率的解法就不是复制粘贴,而是自定义命令。最简单的形式是:
\newcommand{\R}{\mathbb{R}}这样以后每次写实数集,只用输入 \R 即可。带参数的命令也不复杂:
\newcommand{\inner}[2]{\langle #1, #2 \rangle}\newcommand 的第一个花括号是命令名,第二个是命令实现,方括号里的数字表示参数个数,#1、#2 依次对应后续参数。调用时写 \inner{u}{v} 就能生成内积符号。如果有默认参数,语法会变成 \newcommand{名}[2][默认值]{...},这样第一个参数可以省略。对应的还有 \renewcommand 用来重定义已有命令,改样式时不用逐个替换全文。
自定义环境用 \newenvironment,例如把一组常常搭配使用的表格格式封装成一个环境,正文只用 \begin{myenv} ... \end{myenv} 就能获得固定样式。这套机制的意义不只是减少打字量:当期刊要求把某个符号从斜体改成正体时,你只需要改自定义命令里的一行;而如果全文到处硬编码,那个排查过程会让人崩溃。有一件事要提醒:自定义命令名不能和已有宏包的命令冲突,报错信息往往表现为「Command ... already defined」,解决方法是换个不常见的名字,比如加上自己的缩写前缀。
5.2 箱子:理解 LaTeX 排版的最小单位
「箱子」是 LaTeX 排版机制里的核心抽象:所有内容,从单个字母到整段文字,最终都会被装进一个矩形箱子参与排版。不理解箱子,后面的行距、对齐、页边距溢出问题都只能靠玄学调试;理解了它,很多诡异现象立刻变得清晰。比如为什么一行文字会溢出页边距?因为那个单词构成的箱子宽度超过了可用空间;为什么公式和文字基线对不齐?因为在处理两个并排箱子的垂直位置时,没有指定合理的对齐方式。
实践中最常用的几个箱子命令:\mbox{内容} 产生一个不可断行的基础箱子;\fbox{内容} 是带边框的箱子;\parbox{宽度}{内容} 可以把一段文字塞进指定宽度形成段落箱;\resizebox{宽}{高}{内容} 和 \rotatebox{角度}{内容} 用来缩放和旋转;\colorbox 给箱子上底色。手册里还举了带颜色箱子的用法,简历和通知单里特别实用。我见过不少人用表格强行实现这些排版效果,又丑又难调;换成箱子嵌套,复杂度立刻降一个量级。进阶一点,\setlength{\baselineskip}{...} 控制行距,\hspace 和 \vspace 控制水平和竖直距离,\hfill 是弹性填充距离,用在封面排版上能把元素推向两端,这些都是箱子概念的延伸。
5.3 BibTeX/Biber 与文档拆分:管理长篇文档
参考文献是长文档写作中最容易让人放弃 LaTeX 的部分。核心思路是:把所有文献条目写在一个 .bib 文件里,正文里用 \cite{key} 引用,编译时由 BibTeX 或 Biber 自动生成参考文献列表,然后插入文档。这样做的优势是引用编号自动匹配、正文和文献列表永不脱节,换期刊的参考文献样式时只需要换一个 .bst 模板。手册讲的是 natbib 加 BibTeX 这条经典链路,流程上:先用 \usepackage{natbib} 加载宏包,再在正文末尾用 \bibliographystyle{plain} 指定样式、用 \bibliography{文件名} 指定数据文件,最后按「LaTeX → BibTeX → LaTeX → LaTeX」的顺序编译四趟。注意 Biber 是另一个后端,配合 biblatex 宏包使用,两者不要混在一起。第一次跑 BIBTEX 时常见报错是 key 不匹配,检查正文里 \cite 的 key 和 bib 文件里的条目是否完全一致即可。
文档拆分解决的是「文章太长了编辑器卡顿、编译太慢」的问题。\input{文件名} 是把文件内容原样插入,适合模板碎片;\include{文件名} 是为章节准备的,它会自动分页并独立维护辅助文件,方便局部编译。对大型项目,手册还提到 syntonly 宏包:在导言区加入 \syntaxonly 后,只检查语法不生成 PDF,排查错误时编译速度快非常多。再配合前面说的删辅助文件大法,长文档维护基本够用。
6. 最后留一个排错技巧:最小文档还原法
把整本手册读到最后,真正让我反复受益的,其实是它错误排查那节里一个很容易被忽略的思路:当你面对一个诡异报错不知道从哪里下手时,不要盯着日志硬猜,而是把文档砍到最小,再一点点加回内容。
操作步骤很简单。先新建一个空文件,只复制报错文档里的 documentclass 和导言区;然后写入空 document 环境,编译。如果还是报错,问题出在导言区的宏包上,把宏包逐个注释掉做二分定位;如果通过,就把正文按章节复制回来,复制一段编译一次。一旦某段复制后报错,把那一段单独抽到新文件里,继续删命令和宏包,直到错误消失。这个过程能让「可疑变量」收敛到极小范围。曾经有一次报错信息指向第 80 行的表格,我砍了半小时才发现真正的问题在第 12 行一个写错的颜色参数,报错行只是被牵连的受害者。这类经历我已经遇到过太多次,从那以后,每次编译不过我都强制走一遍最小文档还原,而不是反复点编译按钮碰运气。顺带一提,配合 \syntaxonly 做快速语法检查、把编译失败的临时文件删干净再重新编译,都是这套方法的固定组合拳。希望帮到你。
本文还有配套的精品资源,点击获取