什么是 TeX?

TeX 是由 Donald Knuth 创造的一种语言,用于将文档排版得美观而一致。Knuth 从 1977 年开始编写 TeX 排版引擎,目的是探索当时刚进入出版行业的数字印刷设备的潜力,希望借此扭转他在自己书籍和文章中观察到的排版质量下降趋势。

虽然 TeX 在图灵完备的意义上是一种编程语言,但它的主要功能是作为一种标记语言,用来描述文档应当呈现的样式。TeX 提供了对文档结构和格式的精细控制,是一款功能强大而专业的工具。TeX 以极其稳定、跨平台运行以及几乎无 bug 而闻名。TeX 的版本号正逐步逼近数学常数 π,目前的版本号为 3.1415926。

TeX 的名称由其开发者定义为 /'tɛx/,其中的 /x/ 是一个软腭摩擦音,类似于“loch”和“Bach”中的结尾音(见 Donald E. Knuth《The TeXbook》)。该名称的三个字母代表希腊大写字母 tau、epsilon 和 chi,因为 TeX 是 τέχνη(ΤΕΧΝΗ,意为“艺术”与“技艺”)的缩写,这也是英文单词 technical 的词源。英语使用者通常将其发音为 /'tɛk/,类似单词 technical 的首音节。

TeX 自带的工具相对原始,学习如何完成常见任务需要投入大量时间。幸运的是,有些基于 TeX 的文档准备系统已经封装了一些常用命令和宏,可以大大节省时间,尽管这样做会牺牲排版的完全自由度。其中最著名的宏包系统就是 LaTeX。


什么是 LaTeX?

LaTeX(发音为 “Lah-tech” 或 “Lay-tech”)是一组由 Leslie Lamport 为 TeX 创建的宏,目的是简化 TeX 排版,尤其是含有大量数学公式的文档排版。在系统内部,LaTeX 的格式写作方式为 LaTeX

TeX 同时是一种排版语言和逻辑标记语言,编写 TeX 文档时需要考虑这两个方面。Lamport 设计 LaTeX 的初衷就是要将排版逻辑与文档内容分离。排版者可以设计模板,而撰稿者只需专注于内容和结构,而不需要了解排版细节。

除了 LaTeX 本身提供的命令和选项,很多其他作者也开发了扩展包,称为“包(packages)”或“样式(styles)”,可以在文档中使用。这些扩展包大多包含在主流 TeX/LaTeX 发行版中,更多内容可在 CTAN(Comprehensive TeX Archive Network)中找到。


为什么要使用 LaTeX?

大多数读者都熟悉 WYSIWYG(所见即所得)排版系统,比如 LibreOffice Writer、Microsoft Word 或 Google Docs。而使用 LaTeX 与它们根本不同:你不会一边写一边看到文档的最终外观,而是通过编写带有命令的纯文本文件描述排版方式,然后使用 LaTeX 程序生成文档。

尽管这种方法需要你中断写作并执行多个步骤查看文档样式,但 LaTeX 带来以下诸多优点:

  • 你可以专注于文档的结构与内容。LaTeX 会自动确保排版一致性,如字体、字号、行高及布局。

  • LaTeX 让文档结构对用户可见,方便复用。而 WYSIWYG 应用中格式往往不易复制与迁移。

  • 索引、脚注、引用等可以自动生成。

  • 数学公式排版简单优美(这是 TeX 的初衷之一)。

  • 文档源文件是纯文本:

    • 可以用任何文本编辑器查看和理解;

    • 表格、图形、公式等可通过程序自动生成;

    • 适合使用版本控制软件进行追踪与协作;

  • 许多学术期刊仅接受 LaTeX 格式,出版商也提供 LaTeX 模板。

  • LaTeX 支持多种输出格式(原生支持 DVI 和 PDF,借助其他软件也可生成 PostScript、PNG、JPEG 等)。


关于 TeX 的一些术语

文档准备系统

LaTeX 是基于 TeX 的文档准备系统,也就是语言和宏命令的结合。

发行版(Distributions)

TeX 发行版是 TeX 相关软件和宏包的集合,包括编译器、字体等,方便用户直接使用而无需手动配置。

引擎(Engines)

引擎是将源代码转换为可打印格式的程序。引擎负责解释语法,还需加载字体和宏才能生成正确输出。不同引擎支持不同输入和输出格式(如 DVI 或 PDF)。

总的来说,发行版就是你使用 TeX 系统与引擎所需工具的集合,通常根据操作系统分发。不同系统可能依赖不同引擎,不同系统间代码有时也不兼容,例如 XeTeX 的字体设置可能无法被 pdfTeX 使用。


系统术语总览表

系统名 描述
AMSTeX 美国数学学会(AMS)于 1982–1985 年使用的 TeX 宏系统,后发展为包含 amsmath 等包的 AMS-LaTeX。
ConTeXt 由荷兰 Pragma ADE 的 Hans Hagen 和 Ton Otten 设计,适用于 pdfTeX、XeTeX 和 LuaTeX 引擎。假设文档作者和排版设计者是同一人,语法一致且灵活,适合创意丰富的教材与文学作品。
LaTeX Leslie Lamport 创建的基于 TeX 的宏系统,假设作者与排版设计者不同。专注内容创作,遵守出版标准,适合学术文档。
MetaFont Knuth 与 TeX 同期设计的高质量字体系统。
MetaPost 基于 MetaFont 的描述性矢量图语言。
TeX Knuth 原始设计的语言。
Texinfo Richard Stallman 创建的 TeX 宏系统,专用于技术文档(如软件手册)。

引擎术语总览

引擎 描述
xetex, xelatex 支持 Unicode 和 TTF/OTF 字体
luatex, lualatex 内嵌 Lua 支持,增强灵活性,也支持现代字体和 Unicode。
pdftex, pdflatex 直接生成 PDF。
tex, latex 原始 TeX 引擎,生成 DVI 文件。

主要 TeX 发行版

发行版 描述
MacTeX 适用于 macOS,基于 TeX Live。
MiKTeX 适用于 Windows 的 TeX 发行版。
TeX Live 跨平台 TeX 发行版。

接下来呢?

下一章我们将讲解如何在你的系统上安装 LaTeX,并排版你的第一个 LaTeX 文件。


如何进一步学习?

对于初学者乃至经验用户来说,使用 LaTeX 最困难的地方之一就是更改文档外观。WYSIWYG 软件更改字体和布局非常简单,而 LaTeX 需要学习新命令和包。后续章节将涵盖常见用例,但这本书也只是冰山一角。

许多 LaTeX 包附带有详尽的文档,这些是你查找帮助的首选资源。如果你的发行版未安装某个包的说明文档,可以在 CTAN 找到。

其他有用资源包括:


如需继续,我可以帮你排好章节结构或整理安装指南。


Last modified: Friday, 18 April 2025, 10:39 AM