news 2026/10/14 1:24:01

LaTeX入门指南:从排版灾难到高效文档写作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LaTeX入门指南:从排版灾难到高效文档写作

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

如果你曾经用普通文字处理软件排过一篇带公式、图表、参考文献的长文档,大概率经历过这样的崩溃瞬间:改了一个字号,整篇文章的图全部跑位;插入一个公式,行距突然变得忽大忽小;好不容易调好了目录,正文一改页码又全乱了。我最早接触排版是因为一份几十页的技术报告,当时用常规软件折腾了整整两天,最后交上去还是被反馈“格式不统一、公式编号混乱”。后来一位做科研的朋友甩给我一份.tex源文件,说“你试试这个”,我才第一次真正理解什么叫“内容与格式分离”。

LaTeX 入门这件事,本质上不是学一个软件,而是换一种写文档的思维方式。它是一套基于 TeX 的排版系统,你写的是纯文本,用命令描述“这是一级标题”“这是一个公式”“这里引用文献”,至于最终长什么样,交给编译器去算。它最擅长的是三类场景:含大量数学公式的学术论文、结构复杂的长篇书籍或报告、需要严格统一格式的批量文档。适合谁来学?研究生、科研人员、工程师、技术写作者,以及任何被“格式反复调整”折磨过的人。哪怕你只是想写一份漂亮的简历,LaTeX 也能给你惊喜。

这一讲我不打算堆砌命令手册,而是按一个真实上手路径来拆:先讲清楚它的工作原理和整体设计思路,再拆解最核心的几个概念,然后带你从零跑通第一份文档,最后把我踩过的坑和排查经验整理出来。看完你应该能独立写出结构完整、能编译通过的入门文档,并且知道遇到报错该往哪儿找。

2. 先搞懂原理:LaTeX 到底在背后做了什么

2.1 内容与格式分离,是它一切优势的根源

普通文字处理软件是“所见即所得”,你看到的排版就是最终结果,格式信息藏在每个字符背后。LaTeX 走的是另一条路:你写的是逻辑结构,编译器负责把它翻译成视觉排版。比如你写\section{引言},你表达的是“这里开始一个新章节”,而不是“这里用三号黑体加粗居中”。至于章节标题最终是多大字号、什么字体、上下留多少空白,由文档类(document class)和样式文件统一决定。

这个分离带来的直接好处是:你改一次全局样式,整篇文档所有同类元素同步更新。想把全文正文字体从宋体换成思源宋体?改一行配置即可,不用逐段去调。想统一所有公式编号格式?改一个宏包参数就行。这就是为什么长文档、多人协作的文档,用 LaTeX 会越写越省心——格式的一致性由系统保证,而不是靠人肉记忆。

2.2 编译流程:你的 .tex 是怎么变成 PDF 的

很多人第一次用 LaTeX 会困惑:为什么改了内容要“编译”好几次?这背后是 TeX 引擎的多趟处理机制。简单说,一份.tex源文件要经过引擎(如 pdfLaTeX、XeLaTeX)处理,生成中间文件,再输出 PDF。关键在于交叉引用——目录、图表编号、参考文献、公式编号,这些信息在第一趟编译时还不知道,需要写到辅助文件(.aux)里,第二趟再读回来填进去。

所以标准流程通常是:第一次编译生成辅助信息,第二次编译把引用填上,如果涉及参考文献还要跑一次 BibTeX 再编译两次。这就是为什么新手常遇到“目录是空的”“引用显示问号”——不是代码错了,是编译次数不够。理解这一点,能省下大量无谓的排查时间。

2.3 引擎选择:新手到底该用哪个

这是入门第一个绕不开的决策。常见引擎有 pdfLaTeX、XeLaTeX、LuaLaTeX。我的建议很直接:中文文档一律用 XeLaTeX。原因是 pdfLaTeX 对中文支持需要额外配置字体映射,折腾且容易出错;XeLaTeX 原生支持系统字体调用,配合ctex宏包,中文排版几乎零配置。LuaLaTeX 功能更强但生态和速度上对新手不够友好,入门阶段不必碰。

引擎中文支持字体调用适合场景
pdfLaTeX需额外配置受限纯英文、老模板
XeLaTeX原生良好直接调用系统字体中英文混排首选
LuaLaTeX良好灵活高级定制、脚本扩展

选 XeLaTeX 还有一个现实理由:绝大多数中文期刊模板、学位论文模板现在都默认推荐它,你早点适应,后面套模板时不会手忙脚乱。

3. 环境搭建:把工具装对,少走一半弯路

3.1 发行版与编辑器的分工

LaTeX 的“安装”其实分两块:发行版(提供编译引擎和宏包)和编辑器(提供写代码的界面)。发行版是核心,编辑器只是外壳。发行版主流有两个:TeX Live(跨平台,宏包最全)和 MiKTeX(Windows 友好,按需下载宏包)。我推荐 TeX Live,虽然体积大(完整版几个 GB),但胜在宏包齐全,不会出现“缺包”报错。

编辑器方面,新手可以用 TeXstudio 或 VS Code 配 LaTeX Workshop 插件。TeXstudio 开箱即用,按钮齐全,适合完全没接触过命令行的人;VS Code 适合已经习惯现代编辑器的人,配置稍多但体验统一。我个人的路径是先用 TeXstudio 熟悉编译流程,再迁到 VS Code 长期使用。

3.2 安装时的几个关键选择

安装 TeX Live 时,安装程序会问你要装哪些宏包集合。如果你硬盘够,直接选完整版(full scheme),省得后面缺包时反复折腾。如果空间紧张,至少确保collection-langchinese(中文支持)和collection-latexrecommended(常用宏包)被勾选。

提示:安装路径不要带中文和空格,这是很多“莫名报错”的根源。编译器对路径中的特殊字符处理并不总是可靠。

安装完成后,打开命令行输入xelatex --version,能输出版本号就说明引擎就绪。这一步别跳过,很多“编辑器里编译失败”其实是引擎根本没装好。

3.3 第一份文档的目录结构建议

别把所有文件堆在一个文件夹里。我建议从入门就养成这个习惯:

myproject/ ├── main.tex # 主文件,负责组织 ├── chapters/ # 各章节内容 │ └── intro.tex ├── figures/ # 图片 ├── refs.bib # 参考文献 └── styles/ # 自定义样式

主文件用\input{}或\include{}把各章节拼进来。这样文档变长后,你改某一章不用在几千行里翻找,编译速度也更快(\include支持只编译改动部分)。

4. 核心概念拆解:读懂一份 .tex 的骨架

4.1 导言区与正文区:文档的两大部分

任何一份.tex文件都分成两段:\documentclass到\begin{document}之间是导言区,负责全局设置;\begin{document}到\end{document}之间是正文区,写实际内容。这个划分非常重要,因为导言区只能放设置,不能放正文内容,反之正文区里临时改全局设置也不规范。

导言区典型内容:文档类、宏包、全局参数、自定义命令。正文区典型内容:章节、段落、公式、图表、引用。新手最常见的错误之一,就是把\usepackage写到了\begin{document}后面,结果报“命令未定义”。

4.2 文档类:决定文档的基本形态

\documentclass{}是整份文档的“基因”。最常用的几个:

  • article:短篇文档、论文、报告,无章节(chapter)层级
  • report:中长篇,有 chapter
  • book:书籍,双面排版
  • ctexart/ctexrep/ctexbook:ctex 宏包提供的中文版本,内置中文排版规则

中文文档我建议直接用ctexart这类文档类,而不是在article里手动加载 ctex 宏包,前者配置更省心。文档类后面可以跟参数,比如\documentclass[12pt,a4paper]{ctexart}表示字号 12pt、A4 纸。

4.3 宏包:按需加载的功能模块

宏包(package)是 LaTeX 的扩展机制,用\usepackage{}加载。入门阶段你只需要记住几个高频的:

宏包作用加载时机
ctex中文支持用 ctexart 时可省
amsmath数学公式增强写公式必备
graphicx插入图片有图就加
geometry页面边距想调版心就加
hyperref超链接、PDF 书签建议都加

加载顺序有讲究:hyperref通常放最后,因为它会重定义很多命令,放前面容易和其他宏包冲突。这是踩过坑才知道的细节。

4.4 命令与环境:LaTeX 的两种语法形态

LaTeX 的语法就两种:命令和环境。命令以反斜杠开头,如\textbf{加粗},花括号里是参数。环境用\begin{}和\end{}包裹,如\begin{equation}...\end{equation},表示“这一段按公式规则处理”。

理解这个二分法,你看任何 LaTeX 代码都不会懵:看到\就是命令,看到\begin就是环境开始。公式、列表、表格、图片、代码块,全都是环境。命令负责“点状”操作,环境负责“块状”区域。

5. 动手实操:从零写出第一份能编译的文档

5.1 最小可运行示例

先别追求复杂,把下面这段敲进去,用 XeLaTeX 编译,看到 PDF 你就成功了一半:

\documentclass[12pt,a4paper]{ctexart} \usepackage{amsmath} \usepackage{graphicx} \usepackage{geometry} \geometry{margin=2.5cm} \usepackage{hyperref} \title{我的第一份 LaTeX 文档} \author{某开发者} \date{\today} \begin{document} \maketitle \tableofcontents \newpage \section{引言} 这是第一段正文。LaTeX 会自动处理换行和段落间距, 你不需要手动敲空格对齐。 \section{数学公式} 行内公式如 $E = mc^2$,行间公式如下: \begin{equation} \int_{0}^{\infty} e^{-x^2} \, dx = \frac{\sqrt{\pi}}{2} \end{equation} \section{列表与表格} 无序列表: \begin{itemize} \item 第一项 \item 第二项 \end{itemize} \end{document}

编译顺序:XeLaTeX 跑两遍(第一遍生成目录信息,第二遍填目录)。如果目录是空的,再跑一遍就好。

5.2 章节结构:让文档自动生成目录

\section{}、\subsection{}、\subsubsection{}是层级命令,ctexart里没有\chapter。这些命令不只是加个标题,它们会自动编号、自动进目录、自动生成 PDF 书签。你写\section{引言},编译器给你编号“1”,并在目录里列出。这就是“逻辑结构”的威力——你只声明层级,编号和目录全自动。

注意:\tableofcontents生成目录,但它依赖辅助文件,所以必须编译至少两遍。很多人第一次看到空目录就以为代码错了,其实只是没编译够。

5.3 数学公式:LaTeX 的看家本领

公式分两种:行内公式用$...$,嵌在文字里;行间公式用equation环境,单独成行并自动编号。多行公式用align环境,用&对齐等号:

\begin{align} f(x) &= x^2 + 2x + 1 \\ &= (x+1)^2 \end{align}

&是对齐点,\\是换行。这个环境来自amsmath宏包,所以导言区必须加载它。公式里的希腊字母用\alpha、\beta,上下标用^和_,分数用\frac{分子}{分母}。这些符号不用背,用多了自然记住,记不住就查符号表。

5.4 图片与表格:浮动体的概念

LaTeX 里图片和表格叫浮动体(float),因为它们会自动“浮动”到合适位置,而不是死板地待在你写的地方。图片用figure环境:

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

[htbp]是位置建议:here、top、bottom、page,编译器会按优先级尝试。\caption生成图注并自动编号,\label给图起个引用名,正文里用\ref{fig:demo}引用,编号自动更新。表格用tabular环境配合table浮动体,列格式l/c/r表示左/中/右对齐。

5.5 参考文献:BibTeX 的自动化引用

参考文献是 LaTeX 最省心的地方之一。你建一个.bib文件,每条文献一个条目:

@article{example2024, author = {某作者}, title = {某篇论文标题}, journal = {某期刊}, year = {2024} }

正文里用\cite{example2024}引用,编译时自动生成编号和文末列表。编译流程是:XeLaTeX → BibTeX → XeLaTeX → XeLaTeX,四步走。少一步引用就显示问号。这个流程第一次会觉得很繁琐,但一旦跑通,后面加文献就是复制粘贴的事。

6. 常见报错与排查:新手最容易卡的地方

6.1 报错信息怎么读

LaTeX 的报错信息有个特点:真正的错误往往在报错行的前面几行。因为编译器是读到某处才发现“前面有个括号没闭合”。所以看到报错,先往上翻几行找未闭合的{}或\begin。另外,报错信息里的行号是源文件行号,但有时因为宏包展开会偏移,别死盯行号,看错误类型更靠谱。

6.2 高频问题速查表

现象常见原因解决方向
目录为空编译次数不够再编译一遍
引用显示问号未跑 BibTeX 或次数不够完整四步编译
中文不显示/乱码用了 pdfLaTeX换 XeLaTeX
缺宏包报错发行版未装该包用包管理器安装
图片找不到路径或格式问题检查相对路径、用 PNG/PDF
公式编号错乱编译辅助文件残留清理 .aux 后重编

6.3 几个我踩过的坑

第一个坑:文件名和路径带中文或空格。编译器对这类路径处理不稳定,报错信息还特别隐晦。解决办法就是全用英文小写加下划线。

第二个坑:宏包冲突。两个宏包都重定义了同一个命令,就会报“already defined”。常见于hyperref和其他宏包。解决办法是调整加载顺序,把hyperref放最后,或者用\usepackage{包名}的选项禁用冲突功能。

第三个坑:忘记加载 amsmath 就用 align。报错说align未定义,其实不是拼写问题,是宏包没加载。这类“命令未定义”的报错,第一反应应该是“我加载对应宏包了吗”。

提示:遇到实在搞不定的报错,把.aux、.log等中间文件全删掉,重新编译一次。很多诡异问题源于中间文件残留了旧信息。

7. 进阶方向与效率技巧

7.1 自定义命令:把重复劳动消灭掉

如果你发现自己反复写同一串命令,就该定义自己的命令了。在导言区写:

\newcommand{\R}{\mathbb{R}} \newcommand{\norm}[1]{\left\lVert #1 \right\rVert}

之后正文里\R就代表实数集符号,\norm{x}就生成范数。这不仅省打字,更重要的是保证全文符号一致——哪天想改符号样式,改一处即可。这是 LaTeX 相比手写排版的又一大优势。

7.2 模板复用:站在别人的肩膀上

入门之后,最快的提升方式是找一份成熟模板来读。学位论文模板、期刊模板、简历模板,网上都有开源版本。读模板时重点看三处:导言区加载了哪些宏包、自定义了哪些命令、正文如何组织。你会发现,复杂文档的骨架其实和你的第一份文档一模一样,只是宏包更多、自定义更细。

7.3 版本管理与协作

.tex是纯文本,天生适合用 Git 管理。每次大改前提交一次,改崩了随时回退。多人协作时,把内容拆成多个.tex文件,每人负责不同章节,冲突概率大大降低。这也是“内容与格式分离”带来的额外红利——格式文件由一人维护,其他人只管写内容。

8. 我个人的上手体会

回头看,LaTeX 入门最大的门槛不是命令多,而是思维方式的切换。前一两周你会觉得“这比普通软件麻烦多了”,但当你第一次体验到“改一处样式全文同步”“公式编号全自动”“参考文献一键生成”时,就会明白前面那点学习成本有多值。我的建议是别一上来就啃厚手册,先照着最小示例跑通,然后拿自己手头一份真实文档去改写,遇到问题再查。真实需求驱动下的学习,效率比系统啃书高得多。

最后分享一个小技巧:把编译快捷键设成顺手的位置,养成“改一点就编译一次”的习惯。LaTeX 的报错定位依赖编译,频繁编译能让你第一时间发现错误,而不是攒了一堆问题后面对满屏报错无从下手。入门阶段,跑通比优雅重要,先让文档能编译出来,再慢慢追求精致。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 1:23:48

SonarQube集成阿里Java规范的工程化落地实践

1. 项目背景与真实痛点:为什么“阿里Java规范”必须进CI流程你有没有遇到过这样的场景:团队里新来一位很有经验的后端同学,代码写得逻辑清晰、性能也不错,但一提交PR,SonarQube就飘红——不是空指针风险,不…

作者头像 李华
网站建设 2026/10/14 1:23:31

51单片机流水灯与数码管Proteus仿真入门教程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 1:23:28

Sonar集成阿里Java规约:从规则翻译到工程治理落地

1. 为什么“Sonar整合阿里Java规范”不是配置问题,而是工程治理的临界点我第一次在某跨平台系统项目里被要求“把阿里规约塞进Sonar里”的时候,以为只是改几行配置、加个插件的事。结果三天没跑通,团队里三位资深后端轮流排查,最后…

作者头像 李华
网站建设 2026/10/14 1:23:22

黄金周月根本不是零售旺月:263 个月官方数据的三个反常识

文章目录一、先问一个问题:黄金周刷屏的那几天,零售额长什么样?二、先看全景:峰值在 2014,不在任何黄金周三、反常识一:黄金周月不是零售旺月四、反常识二:人流创新高,零售却在负相关…

作者头像 李华
网站建设 2026/10/14 1:23:09

10分钟临时邮箱原理与实战:开发者测试邮箱沙盒指南

简介:这是一套开源的「10分钟临时邮箱」Web服务完整源码,面向PHP初学者、Web安全实践者及轻量级邮件系统开发者,用于快速搭建隐私保护型临时邮箱平台,解决注册验证时暴露真实邮箱、防范垃圾邮件等实际问题。资源共492个文件&#…

作者头像 李华
网站建设 2026/10/14 1:22:49

AI 算力预算超额自适应降级:从百亿级 Token 配额预警到业务平滑降模

在企业大模型基础设施的日常运营中,财务总监与基础架构师最常上演的拉锯战,莫过于“算力预算穿透与业务可用性保障”的残酷冲突。 在每年双 11 的大促备战期,公司会根据各业务线(如智能营销、用户增长、电商客服、研发协同等&…

作者头像 李华