TeX
一位维基教科书用户认为此页面应该分割成更小的页面,并有更窄的子主题。 您可以通过将此大页面分割成更小的页面来提供帮助。请确保遵循 命名政策。将书籍分成更小的部分可以提供更多的关注,并允许每个部分都能够很好地完成一项任务,这将使每个人受益。 |
TeX 是一种用于排版文档的语言,尤其是那些包含数学的文档。它同时具有编程和标记功能。在本手册中,我们将描述“原始 TeX”—— 宏语言 plain TeX、LaTeX、ConTeXt 等的基本引擎。如果您不熟悉 TeX,那么这可能不是您想阅读的内容:您可能正在寻找 LaTeX,它是 TeX 的一个宏包,可以更轻松地生成标准文档。
TeX 是 唐纳德·克努特 的宏语言,用于排版文档。原则上,TeX 可以用于任何类型的程序(它是一个图灵完备编程语言)。
学习 TeX 语言的权威来源,包括编写文档和编程,是唐纳德·克努特编写的TeX 手册。还有一个全面的程序员参考手册,叫做TeX by topic,作者慷慨地将其免费提供在他的网站上,以及 TeX for the Impatient。
我们描述 TeX 的基本结构:寄存器、参数和其他影响 TeX 源文件处理的资源。
- 坏度
- 排版文本行的间距质量的衡量标准。
- 基线
- hbox
- 溢出错误
- TeX 无法生成不溢出盒子的结果,并且已经放弃。通常会出现连字或对齐问题:将行上的最后一个词移到下一行将使行中的空格比当前限制更宽;将词保留在行上将使空格比当前限制更窄,因此词被保留在行上,但词之间的空格最小,这会导致行溢出。
- 不足错误
- TeX 无法生成适当填充盒子的结果,并且已经放弃。TeX 无法将行拉伸到足够宽以适合,而不会使间距大于当前允许的最大值。坏度(0-10,000)表示严重程度。
盒子的概念是 TeX 的基础。盒子代表组成排版页面的内容。例如,字母、文本行、段落、数学公式及其组成符号在概念上都只是 TeX 粘贴在一起以构建页面的盒子,页面本身也是一个盒子。盒子通常由更小的盒子组成。
每个盒子都有许多属性,TeX 使用这些属性使用各种算法将盒子粘贴在一起。这些是
- 基线
- 这是一条垂直分割盒子的水平线。
- 高度
- 从基线到盒子顶部的距离。
- 深度
- 从基线到盒子底部的距离。
- 宽度
- 盒子的水平长度。
- 参考点
- 基线与盒子左侧相交的点。
例如,字母“a”放置在一个盒子里,使其直接坐在基线上;而像“p”、“g”或“j”这样的字母则延伸到基线以下。当 TeX 正在构建一行普通文本时,所有基线都是对齐的,因此一行字符的定位方式与人们预期的一致。字体设计师决定如何将每个字形放置在其各自的盒子里。
虽然盒子代表页面的内容,但胶水代表盒子之间填充的空白,并且当 TeX 正在构建页面时,这种胶水可以扩展或收缩以允许内容最佳定位。这种胶水最终被“设置”,之后它就不能再调整——它只是固定的空白。
存在许多类型的预定义胶水,以满足排版中可能出现的不同需求。
在处理源文件的每个阶段,TeX 都处于以下模式之一
TeX 如何解释源文件取决于当前模式。
TeX 有 25 个 *关键字*。这些词前面没有反斜杠,也不区分大小写。TeX 仅在某些上下文中将这些词解释为关键字。
这里我们描述了 TeX 的 325 个原始控制序列中的每一个。每个条目都给出概要、描述和示例。概要给出了控制序列的正确语法上下文。例如,
\pretolerance=<integer>
给出了 TeX 整数参数之一的语法。在源文件中,需要用 `<integer>` 替换实际的整数,如条目 `<a href="/wiki/TeX/pretolerance" title="TeX/pretolerance">\pretolerance</a>` 的“描述”部分所述。一般来说,任何形式为 `<...>` 的内容(其中省略号是一些描述性词语)都需要用适当的内容替换;“描述”部分将告诉你哪些内容是允许的。
有时语法的一部分是可选的,这可以通过将它放在方括号中来表示,例如
\ifmmode <TeX code 1> [\else <TeX code 2>] \fi
这给出了 TeX 的 if-then-else 控制结构之一的语法。这里的方括号表示 `\else <TeX code 2>` 在实际使用中不必包含。在任何情况下,方括号都不应该在实际使用中使用。
- www.tug.org — TeX 用户组
- ctan.tug.org/tex-archive/info/gentle/gentle.pdf — Michael Doob 的 TeX 指南
- TeX for the Impatient
- TeX Primitive Control Sequences — TeX 参考手册
- TeX by Topic — Victor Eijkhout 编写的免费提供的书籍。