☰
LaTeX 入门指南:从环境搭建到中文排版与参考文献管理
2026/10/15 10:19:56 网站建设 项目流程

1. 为什么还要折腾 LaTeX:从一份排版需求说起

第一次接触 LaTeX 的人,多半是被逼的。要么是毕业论文格式要求变态到每一级标题的行距、字号、缩进都有明文规定,要么是投稿期刊只收特定模板排出来的 PDF,要么是写一本几十页的技术文档,Word 里的图表编号和交叉引用改到崩溃。我当年属于第一种,学校发下来一份格式规范,光“参考文献著录格式”就列了三页纸,用 Word 手动调了两天,改一个标题全篇编号全乱,最后咬牙转向 LaTeX,从此再没回头。

LaTeX 本质上是一套基于 TeX 的排版系统,核心思路是“内容与格式分离”。你只管写“这是一章”“这是一个公式”“这里引用文献”,至于这一章用什么字体、公式怎么对齐、文献编号怎么排,交给模板和编译器去处理。这跟 Word 那种“所见即所得”的思路完全相反,刚开始会很不习惯,但一旦上手,尤其是文档超过二十页、公式超过五十个之后,你会发现省下来的时间远超学习成本。

这篇内容适合三类人:正在被论文格式折磨的学生、需要产出高质量技术文档的工程师、以及任何对专业排版感兴趣但一直没敢下手的新手。我会从最基础的环境搭建讲起,一路走到能独立编译出一份带公式、图表、目录和参考文献的完整文档。全程不绕弯子,踩过的坑我都会标出来,你照着做基本能一次跑通。

2. 环境搭建:发行版、编辑器与编译引擎怎么选

2.1 发行版的选择逻辑

LaTeX 本身只是一套宏命令,真正干活的是背后的 TeX 发行版。目前主流的有两个方向:一个是 TeX Live,跨平台,Windows、Linux、macOS 都能用,体积大但宏包齐全;另一个是 MiKTeX,主要面向 Windows,特点是按需下载宏包,初始体积小。我个人的建议很直接:如果你硬盘空间不紧张,直接上 TeX Live 完整版,省去后面缺宏包反复安装的麻烦。完整版大概几个 GB,但一次装好,后面几年都不用操心。

安装过程本身没什么技术含量,官网下载镜像,一路下一步即可。唯一需要注意的是安装路径不要带中文和空格,这是很多新手第一次编译失败的根本原因。TeX 系统对路径中的非 ASCII 字符处理一直不太友好,虽然近几年有所改善,但为了省事,直接用默认路径最稳。

提示:安装完成后一定要在命令行里验证一下。打开终端输入tex --version和latex --version,能正常输出版本号才算装好。如果提示找不到命令,说明环境变量没配好,Windows 下需要手动把 TeX Live 的 bin 目录加到 PATH 里。

2.2 编辑器的取舍

编辑器这块选择很多,我按使用场景分三类说。第一类是通用代码编辑器加插件,比如 VS Code 配 LaTeX Workshop,优点是轻量、免费、你如果本来就写代码会觉得很顺手,缺点是配置需要花点时间。第二类是 LaTeX 专用编辑器,比如 TeXstudio,开箱即用,自带命令补全、错误提示、PDF 预览,对新手最友好,我推荐第一次接触的人从它开始。第三类是在线平台,打开浏览器就能写,适合临时协作,但涉及隐私内容或者网络不稳定的场景就不太合适。

我自己的主力组合是 VS Code 加 LaTeX Workshop,因为平时写代码也用同一个编辑器,切换成本低。但给身边朋友推荐时,我一律先推 TeXstudio,原因很简单:新手最需要的是“少配置、快出结果”,TeXstudio 装完就能编译,能立刻看到 PDF,正反馈来得快,才不容易放弃。

2.3 编译引擎的区别与选择

这是新手最容易懵的地方。LaTeX 的编译引擎有好几种,常见的是 pdfLaTeX、XeLaTeX、LuaLaTeX。它们的区别主要在字体处理和 Unicode 支持上。

pdfLaTeX 是最传统的引擎,速度快,兼容性好,但对中文和系统字体的支持很弱,需要额外配置。XeLaTeX 原生支持 Unicode 和系统字体,中文排版基本靠它,是目前中文用户的首选。LuaLaTeX 功能最强,支持 Lua 脚本扩展,但编译速度稍慢,宏包兼容性偶尔有坑。

结论很明确:写中文文档,直接用 XeLaTeX。写纯英文且追求编译速度,pdfLaTeX 也够用。这个选择在后面的模板配置里会反复出现,先记住就行。

引擎中文支持字体调用编译速度推荐场景
pdfLaTeX弱需配置快纯英文文档
XeLaTeX强系统字体直接调用中等中文文档首选
LuaLaTeX强系统字体直接调用较慢需要脚本扩展

3. 第一份文档:从骨架到能跑通的完整流程

3.1 文档基本结构拆解

一份最简 LaTeX 文档由两部分组成:导言区和正文区。导言区放文档类声明、宏包引入、全局设置,正文区放实际内容。这个结构就像做菜,导言区是备料和调料,正文区是下锅炒。

\documentclass[12pt,a4paper]{article} \usepackage{ctex} \begin{document} 你好,LaTeX。 \end{document}

这四行就是一个能编译的最小中文文档。\documentclass声明文档类型,article是最常用的短文类,适合论文、报告、笔记。[12pt,a4paper]是可选参数,设定字号和纸张大小。\usepackage{ctex}引入中文支持宏包,这是中文用户必须加的一行,否则中文会直接报错或者显示成空白。\begin{document}和\end{document}之间就是正文。

我见过太多新手卡在第一步,原因往往不是语法,而是忘了加ctex宏包,或者用了 pdfLaTeX 引擎编译带中文的文档。这两个坑记住,能省你半小时。

3.2 编译流程与中间文件

LaTeX 的编译不是一步到位的,它会产生一堆中间文件。以 XeLaTeX 为例,编译一次会生成.aux、.log、.pdf等文件。.aux文件记录交叉引用和目录信息,.log文件记录编译日志,出错时第一时间看它。

为什么有时候要编译两次甚至三次?因为目录、交叉引用、参考文献这些内容需要“先记录再回填”。第一次编译时,LaTeX 还不知道你的章节在第几页,它先把这些信息写进.aux文件;第二次编译时再读取.aux,把页码填回去。所以当你发现目录页码不对、引用显示成问号时,别慌,再编译一次通常就好了。

注意:如果编译两次还是问号,先删掉所有中间文件(保留.tex源文件),重新编译。中间文件损坏或者残留旧信息是常见原因。

3.3 中文排版的关键配置

中文排版和英文有几个本质区别:一是字体,中文需要指定中文字体,英文默认的 Computer Modern 字体不含汉字;二是断行规则,中文没有空格,断行逻辑不同;三是标点,中文标点占全角,和英文混排时间距需要处理。

ctex宏包把这些都封装好了,默认会调用系统里的中文字体。但如果你想要更精细的控制,比如指定宋体、黑体、楷体分别用于正文、标题、引用,可以这样写:

\usepackage[fontset=windows]{ctex}

fontset参数可选windows、mac、ubuntu等,对应不同操作系统的字体集。如果你在 Windows 上写,用windows最省事;跨平台协作时,建议用fontset=fandol,它自带开源中文字体,不依赖系统,换台电脑也能编译出一样的效果。

我踩过的一个坑是:在 Windows 上写好的文档,拿到 Linux 服务器上编译,字体全变了,排版全乱。后来统一用fandol字体集才解决。如果你有跨平台需求,这一点务必注意。

4. 核心语法:公式、图表、交叉引用与参考文献

4.1 数学公式的两种模式

公式是 LaTeX 的看家本领,也是很多人学它的唯一理由。公式分两种:行内公式和行间公式。行内公式用$...$包裹,嵌在文字中间;行间公式用\[...\]或者equation环境,单独占一行并居中。

行内公式:质能方程 $E=mc^2$ 大家都很熟悉。 行间公式: \begin{equation} E = mc^2 \label{eq:emc2} \end{equation}

equation环境会自动给公式编号,\label给公式起个名字,方便后面引用。引用时用\ref{eq:emc2},编译两次后就会显示成“公式 (1)”这样的形式。

复杂公式比如矩阵、分段函数、多行对齐,需要用到amsmath宏包,这是事实上的标准,几乎每份文档都会引入。矩阵用pmatrix、bmatrix等环境,分段函数用cases环境,多行对齐用align环境。这些环境的名字有规律,p是圆括号,b是方括号,v是竖线,记住规律就不用死记硬背。

4.2 图表插入与浮动体机制

LaTeX 里插入图片用graphicx宏包,基本命令是\includegraphics。但图片通常放在figure环境里,这个环境叫“浮动体”,意思是 LaTeX 会根据排版需要自动调整图片位置,不一定严格放在你写代码的地方。

\begin{figure}[htbp] \centering \includegraphics[width=0.8\textwidth]{example.png} \caption{示例图片} \label{fig:example} \end{figure}

[htbp]是位置参数,h 代表 here(当前位置),t 代表 top(页顶),b 代表 bottom(页底),p 代表单独一页。LaTeX 会按这个优先级尝试放置。很多人抱怨“图片乱跑”,其实这是浮动体的正常行为,理解它的逻辑后反而会觉得方便——你不需要手动调图片位置,LaTeX 会帮你找到最合适的地方。

表格用tabular环境,列格式用l、c、r表示左对齐、居中、右对齐,|画竖线,\hline画横线。表格的浮动体环境叫table,和figure类似。

环境用途位置参数编号前缀
figure图片浮动体htbp图
table表格浮动体htbp表
equation公式无公式

4.3 交叉引用的正确姿势

交叉引用是 LaTeX 相比 Word 最大的优势之一。你给章节、公式、图、表、文献都打上\label,然后在需要的地方用\ref或\eqref引用,编号自动生成、自动更新。改文档结构时,所有引用跟着变,不用手动改一个数字。

这里有个关键细节:\label必须放在\caption之后。因为\caption才会生成编号,\label引用的是最近一次生成的编号。如果顺序反了,引用会指向错误的编号,这是新手极高频的错误。

提示:引用文献用\cite,配合bibtex或biblatex使用。\cite的编号是方括号形式,比如 [1],和图表引用的圆括号形式不同,这是约定俗成的规范。

4.4 参考文献的自动化管理

手动写参考文献列表是自虐行为。正确做法是把文献信息存进.bib文件,用bibtex或biblatex自动生成。.bib文件的格式很固定:

@article{key2024, author = {张三 and 李四}, title = {一篇示例论文}, journal = {某学术期刊}, year = {2024}, volume = {12}, pages = {34--56} }

然后在文档里用\cite{key2024}引用,编译时自动匹配。bibtex的编译流程是:XeLaTeX 编译一次,bibtex 处理文献,再 XeLaTeX 编译两次。总共四次,听起来麻烦,但编辑器里通常有一键完成按钮,实际体验很流畅。

我强烈建议从一开始就用.bib管理文献,哪怕只有三五篇。因为文献格式一旦定下来,后面加文献就是复制粘贴的事,而且换期刊模板时,文献格式自动适配,不用手动改。

5. 常见报错与排查实录

5.1 编译失败的典型原因

LaTeX 的报错信息出了名的难懂,但常见的就那么几类。第一类是缺宏包,报错信息里会有File 'xxx.sty' not found,解决办法是安装对应宏包,TeX Live 用tlmgr install xxx,MiKTeX 会自动弹窗提示安装。第二类是语法错误,比如忘了闭合花括号、环境没配对,报错会指向具体行号,顺着找通常能找到。第三类是编码问题,中文乱码或者报Unicode character not set up,基本是引擎选错了,换成 XeLaTeX 即可。

我整理了一份速查表,覆盖新手九成以上的报错场景:

报错关键词可能原因解决办法
File not found缺宏包安装对应宏包
Missing $ inserted数学符号没放在公式环境检查$配对
Undefined control sequence命令拼写错误或未引入宏包检查拼写和宏包
Runaway argument花括号没闭合检查括号配对
Unicode character引擎不支持该字符换 XeLaTeX
Citation undefined文献未编译运行 bibtex 后再编译

5.2 中文相关的特殊问题

中文用户会遇到一些英文用户不会碰到的问题。最常见的是“中文不显示”或者“中文显示成方框”,根源是字体没配好。ctex宏包默认会尝试调用系统字体,如果系统里没有对应字体,就会出问题。解决办法是显式指定fontset,或者手动设置字体。

另一个问题是中文断行。英文靠空格断行,中文没有空格,LaTeX 默认的断行算法对中文支持一般,长段落可能出现溢出边界的情况。ctex宏包已经做了优化,但极端情况下还是需要手动调整。可以在导言区加\XeTeXlinebreaklocale "zh"和\XeTeXlinebreakskip = 0pt plus 1pt,改善中文断行效果。

还有一个隐蔽的坑:中英文混排时的间距。中文和英文之间、中文和数字之间,规范上需要加一点空隙,但手动加空格很麻烦。ctex宏包会自动处理这个间距,所以只要你用了ctex,这个问题基本不用操心。

5.3 排版效果的微调技巧

文档能编译只是第一步,排得好看是第二步。几个我常用的微调技巧:调整页边距用geometry宏包,一行代码搞定,比手动调\hoffset优雅得多。调整行距用setspace宏包,\onehalfspacing就是 1.5 倍行距,论文常用。调整段落缩进用\setlength{\parindent}{2em},中文习惯首行缩进两个字符。

\usepackage[margin=2.5cm]{geometry} \usepackage{setspace} \onehalfspacing \setlength{\parindent}{2em}

这几行加在导言区,文档的观感立刻专业一个档次。我见过不少人花大量时间调格式,其实这些宏包早就把常见需求封装好了,查一下文档就能用,没必要自己造轮子。

注意:geometry宏包的margin参数会同时设置四边边距,如果只想改某一边,用left、right、top、bottom单独指定。论文装订通常需要左边距大一点,这时候就用单独指定。

6. 从入门到能用的进阶路径

6.1 模板的获取与改造

入门之后,下一步是学会用模板。期刊、学校、会议通常都会提供官方 LaTeX 模板,拿到模板后不要从头改,而是先编译一遍看效果,再把自己的内容往里填。模板里的导言区通常已经配好了格式,你只需要关注正文部分。

改造模板时,最容易出问题的是宏包冲突。模板引入的宏包和你自己加的宏包可能不兼容,表现为编译报错或者排版异常。解决办法是尽量少加宏包,能用模板自带的就用自带的。如果必须加,加之前先查一下有没有已知冲突。

我个人的习惯是:拿到新模板,先建一个副本,在副本上折腾,确认没问题再迁移到正式文档。这样即使改崩了,原始模板还在,不至于从头再来。

6.2 版本管理与协作

LaTeX 源文件是纯文本,天生适合用版本管理工具。我所有的 LaTeX 项目都放在版本控制里,每次大改之前提交一次,改崩了随时回滚。协作时,多人同时改一份文档容易冲突,建议按章节拆分文件,用\input或\include在主文件里组装。这样每个人改自己的章节,冲突概率大大降低。

\input和\include的区别:\include会强制分页,适合章节级别的拆分;\input不分页,适合任意粒度的拆分。我通常用\input拆章节,主文件只保留导言区和章节引入命令,结构清晰,找内容也方便。

6.3 学习资源的取舍

LaTeX 的学习资源很多,但质量参差不齐。我的建议是:不要一上来就啃几百页的手册,那样容易劝退。先找一份二三十页的入门文档,把基本结构、公式、图表、引用跑通,能独立编译出一份像样的文档,然后再按需查手册。遇到具体问题再查,比通读手册效率高得多。

常用的参考资料有两类:一是宏包的官方文档,用texdoc 宏包名命令可以直接调出本地文档,这是最权威的来源;二是社区问答,常见问题基本都有人问过,搜一下通常能找到答案。查资料时注意看日期,太老的答案可能已经不适用新版本。

我在实际使用中的体会是,LaTeX 的学习曲线确实陡,但陡峭的部分集中在前两周。一旦跨过“能独立编译出一份完整文档”这个门槛,后面的路就平了。而且这个投入是一次性的,学会之后,无论写论文、写报告、写书,排版都不再是负担。最后分享一个小技巧:把你常用的导言区配置存成一个单独的.tex文件,新文档直接\input进来,省去每次重复配置的麻烦。这个习惯我坚持了好几年,累计省下的时间相当可观。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询