xuqi

2023-11-25

读懂 LaTeX 文件

Table of Contents

TeX 代码表面上看和 XML 等树形结构的标记语言有颇多相似之处,但实际上它是一连 串的宏,在编译时这些宏会被替代成它们的定义文本,直到替换的结果中不含任何宏, 只有最原始的命令和文档本身的内容为止。它和同时代的很多软件工具,如 Make 和 M4,在这方面颇为相似。

group

LaTeX 引入“环境”(environments)的概念,用来描述对一块内容做操作的指令。环 境的起始、结束标志和夹在中间的内容构成一个群(group),这样环境当中使用的指 令只会对这个群的内容有效。转换成 TeX 代码之后, \begin{foo}...\end{foo} 这 样的命令变成 \beginfoo ... \endfoo\beginfoo\endfoo 和其他 TeX 命令一样,都是宏。

1. 文档类

LaTeX 提供了文档类(class),用来封装一系列的 TeX 命令。这些命令定义了文档的 类型、形态和一些特定的元素,例如章节结构和标题等等。这样的抽象让用户得以很快 地获得一套基础的排版方案。LaTeX 提供了 book report article 等几个最常 用的类。如果用户需要其他的类,他们可以新建一个类文件( .cls ),在其中引用 一个作为基础的类,再加入或者修改命令,这个过程叫做类的调整(refine)。

2.

如果没有找到合适的类文件,用户也可以用包(package)提供的功能来想办法实现想 要的排版效果。除了调整排版效果,有的包还引入了新的功能,比如绘制图形、插入超 链接,或者让错误信息变得更清晰。

包在编译安装好后,在磁盘上储存为 .sty 文件。如果打开 .cls.sty 文件, 你会发现它们很相似,都是一连串的 LaTeX 和 TeX 命令。