为什么还要学一门「写代码的排版工具」
用 Word 排三页报告很轻松。可当你面对一篇有几十个公式、上百条参考文献、还要求「第 3 章第 2 节」自动编号的论文时,手动调格式就会变成灾难:改一个标题,全篇编号乱掉;删一条文献,引用处全部报错。
LaTeX 换了一个思路。你不再直接去「画」版面,而是用代码描述结构:这里是一章、这里是一个公式、这里引用了一篇文献。至于字体多大、编号是几、公式怎么居中,全部交给编译器去算。一句话概括:你负责「是什么」,LaTeX 负责「长什么样」。
正因如此,LaTeX 特别擅长四件事:数学公式、自动编号与交叉引用、长篇文档的稳定维护、参考文献管理。它也是绝大多数理工科学位论文、教材与学术期刊事实上的排版标准。
LaTeX 怎么工作:一次编译的旅程
你写下的文件叫源文件(扩展名 .tex),内容是纯文本的排版指令。编译器读取它,反复计算若干遍,最后吐出 PDF。整个流程是一条直线:.tex 源文件 → 引擎编译 → PDF。
常用的引擎有三个。pdfLaTeX 速度最快、兼容最好,是西文文档的默认选择;XeLaTeX 可以直接调用系统字体并很好支持中文;LuaLaTeX 是功能最全的现代引擎,还能嵌入脚本。初学者不必纠结,先用 pdfLaTeX 就够了,遇到中文再换 XeLaTeX。
本站的每个示例都能真实编译:点击「编译运行」,源码会被提交到 TeX Live 官方在线服务,几秒后返回真实的 PDF 渲染结果。这意味着你看到的每一页,都是货真价实的 LaTeX 排出来的。
文档的三段式骨架
任何一份 LaTeX 文档都可以拆成三段。第一段是文档类:\documentclass{article} 告诉 LaTeX「这是一篇短文章」,article 是最常用的文档类。
第二段是导言区(preamble),指 \documentclass 之后、\begin{document} 之前的所有内容。这里放全局设置:加载宏包、定义标题作者、设置纸张字号。导言区里不写正文。
第三段是正文,全部写在 \begin{document} 和 \end{document} 之间。文档真正的内容——段落、公式、表格、图片——都住在这里。记住这个「三段式」,后面每一课都只是在往这三个位置填东西。
忘记写 \end{document}:文档会直接编译失败,报错信息通常还很靠后,让人摸不着头脑。
把正文内容写到了 \begin{document} 之前:那是导言区,只认设置类命令,写普通文字会报错。
命令区分大小写:\LaTeX 正确,\Latex 或 \latex 都会报「未定义命令」。
空格、换行与分段:三条反直觉的规则
第一条:连续多个空格只算一个。你在源码里敲十个空格,输出里也只是一个普通词距。这是好事——源码可以随便对齐,不会影响排版。
第二条:单个换行等于一个空格。也就是说,在源码里换行并不会让 PDF 换行;它只是把两行内容接成一段。
第三条:空一行才表示分段。要真正另起一段,必须在两段之间留一个空行(多个连续空行也只算一个)。想让某一行强制断开、又不分段,可以用 \\ 或 \newline,下一课会细讲。
LaTeX 命令名由字母组成,编译器会「吞掉」命令名后面的空格。所以如果你直接写 \LaTeX document,输出会变成 LaTeXdocument——空格没了。
空花括号 {} 的作用是「切断命令名」:\LaTeX{} 表示命令在 } 处结束,后面那个空格就得以保留。记住这个规律,凡是字母组成的命令后面要接空格,都补一个 {}。
记住三件事:① 文档 = 文档类 + 导言区 + 正文;② 空行才分段,单个换行不算;③ 命令名后面的空格会被吞掉,用 {} 隔开。
下一课我们把那些「身怀绝技」的特殊字符一个个拆开:% & # $ _ { } ~ ^ \ —— 弄清它们,你就不会再莫名其妙编译报错了。