TeX — Beauty and Fun
这里是一个宣传 TeX — 一个漂亮,有趣又可靠的排版程序
的网页。希望通过我的介绍,你能体会到使用 TeX 的快乐感觉。
不管你怎么到了这里,或者是写论文时被 Word 繁琐的功能弄晕
了,想看看这个新鲜东西能否消除你的烦恼?或者你是久闻 TeX 大
名,但是不知道这到底是怎么回事?或者你不知道 LaTeX 和 TeX,
MikTeX, teTeX 有什么关系?这一页都是非常有意思的。
这页分成了很多小主题,可以叫做一个非技术性的 FAQ. 里面藏
着我收集的很多有趣的有关 TeX 的言论,你可以挑你喜欢的看。
- TeX 是什么?
TeX 是一个排版系统。用 TeX,你可以把你的文章做成书那种效
果。你可以把它打印出来,或者送到出版社投稿。TeX 非常适合写各
种学术论文和书籍。“TeX 不是一个用来制造比较漂亮的书籍的程序,
而是用来制造最美的书籍的程序。” - TeX 是哪家公司生产的?
TeX 不是一家公司生产的,它主要是由计算机科学家 D.E.Knuth
设计并实现的。在 TeX 的诞生过程中,还包含了千千万万 TeX 用户
的建议和要求。TeX 使用的字体包含了许许多多书法家,字体设计家
的功劳,其中包括著名的 Hermann Zapf。TeX 的宏包,字体,……
成千上万,是由各个领域的的专家按照自己专业的需要设计的。所以
TeX 是全世界科学家和艺术家集体智慧的结晶。 - 我们今天主角的名字怎么念啊?”Tecks”?
看看上面右边那位,它就是 TeX。TeX 的名字是由大写的希腊字
母
组成。在希腊语中这个词的意思是
“科技”和“艺术”,这也解释了它的发音。“T”和“E”就像在
“technology”中的发音一样,而“X”的发音类似于苏格兰语单词
“loch”或德语单词“ach”中的“ch”,也类似于西班牙语中的“j”
或俄语中的“kh”。当你对着电脑屏幕读这个单词,你的屏幕就会起
雾。左边那位漂亮女士就是 METAFONT. 她专门为 TeX 制造好看的字
体。 - 我还听说 LaTeX 非常好,TeX 比它还好吗?
呵呵,你有个概念没有搞清楚。这两者其实是同一个程序,但是
有层次上的不同,TeX 是 LaTeX 的基石,LaTeX 建立在 TeX 之上。
如果你想搞清楚他们具体是怎样的关系,可以看看LaTeX+CJK是怎样工作的。其实世界上只有一个TeX程序,它就叫做 “tex”, 它是由 D. E.
Knuth 设计并且实现的。TeX 不仅是一个排版程序,而且是一种程序
语言。LaTeX 就是用这种语言写成的一个“TeX 宏包”,它扩展了
TeX 的功能,使我们很方便的逻辑的进行创作而不是专心于字体,缩
进这些烦人的东西。TeX 还有其它的大型宏包,它们和 LaTeX 一起
都被叫做 “format”,现在还有一种常用的format叫做 ConTeXt, 用
它能方便的作出极其漂亮的幻灯片,动态屏幕文档…… 我们通常用
TeX 都是在用 LaTeX, ConTeXt, 因为 TeX 的底层需要更多的知识才
能了解,一般人不需要自己设计自己的格式。所以答案是 LaTeX 和 TeX 一样好。
- LaTeX2e 是什么?这些东西怎么这么奇怪啊?
LaTeX2e 是 LaTeX 目前的版本。以前的 LaTeX 叫做 LaTeX
2.09. 这就是历史 🙂 你现在随便下载一个 TeX 系统,里面带的
LaTeX 都是 LaTeX2e。 - LaTeX 建立在 plain TeX 之上吗?
不是。很多人把 plain TeX 认为是最底层的,其实不是这样。
plain 和 LaTeX 一样,都是 TeX 的宏包,也叫 format,它们是平
等的关系。只不过这个 plain format 实在太简单了,你需要自己定
义很多宏才能很好的工作,所以叫做 “plain”。在它们之下就是 TeX,
或者明确一点,叫做 “TeX primitive” — 最基本的 TeX 语言。
你几乎不想用 TeX primitive 干任何事情,因为即使打出一个很简
单的符号,用 TeX primitive 你也需要费很多事。即使最顽固的号
称“永远不用 LaTeX” 的底层派,他们也不敢不依赖 plain TeX,
因为自己设计一个 format 是很不容易的,你自己看看,最简单的
plain 的宏包都有1200行稀奇古怪的 TeX primitive! - 那还有 MikTeX, teTeX, … 呢。它们到底是什么?
Knuth 创造了 TeX 之后,公布了 TeX 程序的源代码。所以任何
人都可以在保证不修改那个文件的情况下把它编译成程序,然后跟其
它很多程序一起打包发行。这样就有了很多发行版本,比如 Windows
下有 MikTeX,fpTeX, … Linux 和 UNIX 下有 teTeX. 这些简称
“发行”。你知道 Linux 吗?如果知道我就打个比方:TeX 和 MikTeX,
teTeX… 的关系,就像 Linux 和 Debian GNU/Linux, Redhat
Linux, … 的关系。每一个TeX发行里都包含了 TeX, METAFONT,
LaTeX, amsTeX, MetaPost, dvips, pdfTeX, dvipdfm…每一个
Linux 发行都包含Linux内核,bash, gcc, tar, XFree86, … - LaTeX 怎么发音?
LaTeX 读作:“雷TeX”。
- 排版 Word 也可以啊!TeX 跟 Word, WordPerfect 有什么不一
样?Word 和 WordPerfect 是“字处理程序”(word processor),它
们是“所见即所得(WYSIWYG)”的,你直接修改字体,颜色,用鼠标
画出表格…… 马上就可以看到效果。屏幕上显示出来是什么效果,
印出来……基本上就是那个效果。而 TeX 不是,你输入的都是文本
文件,需要一个程序(当然就是tex了)处理之后才能得到一个排版后
的结果。 - 那样的话 TeX 还不如 Word 呢!
你认为 WYSIWYG 很好吗?其实还有更好的,TeX 是 “WYTIWYG(所
想即所得)”。用 TeX 写论文的时候,你根本不用想着“这个单词使
用什么字体呢?”,“这行应该缩进多少呢?”,……这类问题。你
能够专注于你的思路,你的作品的逻辑关系,这样才能更好的为你的
读者着想,写出比用WYSIWYG更好的作品。用TeX写文章,你想的是
“这一段是否应该属于上一节呢?”,“这句话跟我这章的主题符合
吗?”,“是否应该开始新的一章呢?”……你告诉 TeX 的是:“这是一章开始”,“这个单词应该强调”,
“这里是一段诗”……而不是告诉它:“这是第3章,应该用黑体三
号字,开头有一个‘双S’,……”,“这个单词用斜体楷体小四”,
“左右缩进各一英寸,右边不要对齐,换用小一号花体”……在用 TeX 的时候,TeX 是你的排字工,你是诗人,作家…… 而
用字处理程序的时候,你既当作者又当排字工,累不累?其实你也知道,再好的字处理程序打印出来的效果也跟屏幕上看
到的大不一样,而 TeX 生成的 dvi 文件在屏幕上看到是什么样,打
印出来绝对就是那个样子,每一个字符的每一笔每一划,……都是一
模一样。在某种程度上,TeX 才是“所见即所得”。 - 你能说说 TeX 的效果比Word之类的字处理程序好在哪里吗?
你比较一下一个很有经验的 Word 用户和一个 LaTeX 初学者打出
的文档就可以发现:- 远远看去,LaTeX 文档格式更加均称,黑白程度均匀,而 Word
文档是黑一块的白一块,字符密度不均匀。 - 仔细看看,你就知道原因了。 Word 文档里上下两行经常有这种
情况,上一行的单词间距很宽,而下面一行却很窄。这在排版学上是
非常不好的。相临行的单词间据应该尽量相同。 - 数学公式。输入的时候就不说了,你知道用Word自带的公式编辑
器输入公式有多麻烦。现在看看效果:Word 的公式,该近的不近,
该远的不远。很多标点符号都不好看,大一点的括号怎么看也不舒服,
你仔细看看那些逗号,省略号,非常难看。如果公式插入到段落中,
整个段落的行距会有灾难性的效果。而 TeX 的数学公式却是无可挑
剔的,而且输入起来很方便,你可以根本不看屏幕,不用鼠标就输入
很复杂的公式。
Word 的距离是用户看出来的,然后用鼠标什么的左调右调,可就
是怎么也对不齐。TeX 的距离是算出来的,是根据最优的算法,具有
数学的美感。TeX 对长度的精确程度可以达到 63 埃!(1埃
=10-10米) - 远远看去,LaTeX 文档格式更加均称,黑白程度均匀,而 Word
- TeX 输入数学公式的方式跟 Word 有什么区别?
TeX — Beauty and Fun
这里是一个宣传 TeX — 一个漂亮,有趣又可靠的排版程序
的网页。希望通过我的介绍,你能体会到使用 TeX 的快乐感觉。不管你怎么到了这里,或者是写论文时被 Word 繁琐的功能弄晕
了,想看看这个新鲜东西能否消除你的烦恼?或者你是久闻 TeX 大
名,但是不知道这到底是怎么回事?或者你不知道 LaTeX 和 TeX,
MikTeX, teTeX 有什么关系?这一页都是非常有意思的。这页分成了很多小主题,可以叫做一个非技术性的 FAQ. 里面藏
着我收集的很多有趣的有关 TeX 的言论,你可以挑你喜欢的看。- TeX 是什么?
TeX 是一个排版系统。用 TeX,你可以把你的文章做成书那种效
果。你可以把它打印出来,或者送到出版社投稿。TeX 非常适合写各
种学术论文和书籍。“TeX 不是一个用来制造比较漂亮的书籍的程序,
而是用来制造最美的书籍的程序。” - TeX 是哪家公司生产的?
TeX 不是一家公司生产的,它主要是由计算机科学家 D.E.Knuth
设计并实现的。在 TeX 的诞生过程中,还包含了千千万万 TeX 用户
的建议和要求。TeX 使用的字体包含了许许多多书法家,字体设计家
的功劳,其中包括著名的 Hermann Zapf。TeX 的宏包,字体,……
成千上万,是由各个领域的的专家按照自己专业的需要设计的。所以
TeX 是全世界科学家和艺术家集体智慧的结晶。 - 我们今天主角的名字怎么念啊?”Tecks”?
看看上面右边那位,它就是 TeX。TeX 的名字是由大写的希腊字
母
组成。在希腊语中这个词的意思是
“科技”和“艺术”,这也解释了它的发音。“T”和“E”就像在
“technology”中的发音一样,而“X”的发音类似于苏格兰语单词
“loch”或德语单词“ach”中的“ch”,也类似于西班牙语中的“j”
或俄语中的“kh”。当你对着电脑屏幕读这个单词,你的屏幕就会起
雾。左边那位漂亮女士就是 METAFONT. 她专门为 TeX 制造好看的字
体。 - 我还听说 LaTeX 非常好,TeX 比它还好吗?
呵呵,你有个概念没有搞清楚。这两者其实是同一个程序,但是
有层次上的不同,TeX 是 LaTeX 的基石,LaTeX 建立在 TeX 之上。
如果你想搞清楚他们具体是怎样的关系,可以看看LaTeX+CJK是怎样工作的。其实世界上只有一个TeX程序,它就叫做 “tex”, 它是由 D. E.
Knuth 设计并且实现的。TeX 不仅是一个排版程序,而且是一种程序
语言。LaTeX 就是用这种语言写成的一个“TeX 宏包”,它扩展了
TeX 的功能,使我们很方便的逻辑的进行创作而不是专心于字体,缩
进这些烦人的东西。TeX 还有其它的大型宏包,它们和 LaTeX 一起
都被叫做 “format”,现在还有一种常用的format叫做 ConTeXt, 用
它能方便的作出极其漂亮的幻灯片,动态屏幕文档…… 我们通常用
TeX 都是在用 LaTeX, ConTeXt, 因为 TeX 的底层需要更多的知识才
能了解,一般人不需要自己设计自己的格式。所以答案是 LaTeX 和 TeX 一样好。
- LaTeX2e 是什么?这些东西怎么这么奇怪啊?
LaTeX2e 是 LaTeX 目前的版本。以前的 LaTeX 叫做 LaTeX
2.09. 这就是历史 🙂 你现在随便下载一个 TeX 系统,里面带的
LaTeX 都是 LaTeX2e。 - LaTeX 建立在 plain TeX 之上吗?
不是。很多人把 plain TeX 认为是最底层的,其实不是这样。
plain 和 LaTeX 一样,都是 TeX 的宏包,也叫 format,它们是平
等的关系。只不过这个 plain format 实在太简单了,你需要自己定
义很多宏才能很好的工作,所以叫做 “plain”。在它们之下就是 TeX,
或者明确一点,叫做 “TeX primitive” — 最基本的 TeX 语言。
你几乎不想用 TeX primitive 干任何事情,因为即使打出一个很简
单的符号,用 TeX primitive 你也需要费很多事。即使最顽固的号
称“永远不用 LaTeX” 的底层派,他们也不敢不依赖 plain TeX,
因为自己设计一个 format 是很不容易的,你自己看看,最简单的
plain 的宏包都有1200行稀奇古怪的 TeX primitive! - 那还有 MikTeX, teTeX, … 呢。它们到底是什么?
Knuth 创造了 TeX 之后,公布了 TeX 程序的源代码。所以任何
人都可以在保证不修改那个文件的情况下把它编译成程序,然后跟其
它很多程序一起打包发行。这样就有了很多发行版本,比如 Windows
下有 MikTeX,fpTeX, … Linux 和 UNIX 下有 teTeX. 这些简称
“发行”。你知道 Linux 吗?如果知道我就打个比方:TeX 和 MikTeX,
teTeX… 的关系,就像 Linux 和 Debian GNU/Linux, Redhat
Linux, … 的关系。每一个TeX发行里都包含了 TeX, METAFONT,
LaTeX, amsTeX, MetaPost, dvips, pdfTeX, dvipdfm…每一个
Linux 发行都包含Linux内核,bash, gcc, tar, XFree86, … - LaTeX 怎么发音?
LaTeX 读作:“雷TeX”。
- 排版 Word 也可以啊!TeX 跟 Word, WordPerfect 有什么不一
样?Word 和 WordPerfect 是“字处理程序”(word processor),它
们是“所见即所得(WYSIWYG)”的,你直接修改字体,颜色,用鼠标
画出表格…… 马上就可以看到效果。屏幕上显示出来是什么效果,
印出来……基本上就是那个效果。而 TeX 不是,你输入的都是文本
文件,需要一个程序(当然就是tex了)处理之后才能得到一个排版后
的结果。 - 那样的话 TeX 还不如 Word 呢!
你认为 WYSIWYG 很好吗?其实还有更好的,TeX 是 “WYTIWYG(所
想即所得)”。用 TeX 写论文的时候,你根本不用想着“这个单词使
用什么字体呢?”,“这行应该缩进多少呢?”,……这类问题。你
能够专注于你的思路,你的作品的逻辑关系,这样才能更好的为你的
读者着想,写出比用WYSIWYG更好的作品。用TeX写文章,你想的是
“这一段是否应该属于上一节呢?”,“这句话跟我这章的主题符合
吗?”,“是否应该开始新的一章呢?”……你告诉 TeX 的是:“这是一章开始”,“这个单词应该强调”,
“这里是一段诗”……而不是告诉它:“这是第3章,应该用黑体三
号字,开头有一个‘双S’,……”,“这个单词用斜体楷体小四”,
“左右缩进各一英寸,右边不要对齐,换用小一号花体”……在用 TeX 的时候,TeX 是你的排字工,你是诗人,作家…… 而
用字处理程序的时候,你既当作者又当排字工,累不累?其实你也知道,再好的字处理程序打印出来的效果也跟屏幕上看
到的大不一样,而 TeX 生成的 dvi 文件在屏幕上看到是什么样,打
印出来绝对就是那个样子,每一个字符的每一笔每一划,……都是一
模一样。在某种程度上,TeX 才是“所见即所得”。 - 你能说说 TeX 的效果比Word之类的字处理程序好在哪里吗?
你比较一下一个很有经验的 Word 用户和一个 LaTeX 初学者打出
的文档就可以发现:- 远远看去,LaTeX 文档格式更加均称,黑白程度均匀,而 Word
文档是黑一块的白一块,字符密度不均匀。 - 仔细看看,你就知道原因了。 Word 文档里上下两行经常有这种
情况,上一行的单词间距很宽,而下面一行却很窄。这在排版学上是
非常不好的。相临行的单词间据应该尽量相同。 - 数学公式。输入的时候就不说了,你知道用Word自带的公式编辑
器输入公式有多麻烦。现在看看效果:Word 的公式,该近的不近,
该远的不远。很多标点符号都不好看,大一点的括号怎么看也不舒服,
你仔细看看那些逗号,省略号,非常难看。如果公式插入到段落中,
整个段落的行距会有灾难性的效果。而 TeX 的数学公式却是无可挑
剔的,而且输入起来很方便,你可以根本不看屏幕,不用鼠标就输入
很复杂的公式。
Word 的距离是用户看出来的,然后用鼠标什么的左调右调,可就
是怎么也对不齐。TeX 的距离是算出来的,是根据最优的算法,具有
数学的美感。TeX 对长度的精确程度可以达到 63 埃!(1埃
=10-10米) - 远远看去,LaTeX 文档格式更加均称,黑白程度均匀,而 Word
- TeX 输入数学公式的方式跟 Word 有什么区别?
上面这个公式是一位很熟悉 Word 的数学系的朋友耐着性子仔仔
细细帮我用 MS Equation 3.0 输入了,然后转成 PDF 后的效果,他
说:“还好,凑合能认出来是什么。”再看看 TeX 输入的同样的公式:

比较一下,真是天壤之别。
TeX 输入的数学公式都是文本。你可以直接用键盘敲入。比如这
个漂亮的公式是这样打出来的:$$\sum_{p\rm\;prime}f(p) = \int_{t>1}f(t)d\pi(t).$$\sum 就是那个求和符号, “_”后面括起来的就是下标,\rm 使后
面的 “prime” 用正体显示, \; 是一个空格。\int 就是积分
(integrate)符号, \pi 就是那个圆周率符号。很难吗?麻烦吗?好
吧,试试用 Word 的公式编辑器怎样打出这个公式,再比较一下效果。其实有很多符号你在 Word 里就不容易找到了。比如:

用 TeX 就这样输入:
$$2\uparrow\uparrow k \mathrel{\mathop=^{\rm def}} 2^{2^{\cdot^{\cdot^{\cdot^2}}}} \vbox{\hbox{$\Big\}\scriptstyle k$}\kern0pt}.$$虽然比一般的公式复杂一点,但是你发现里面的简单的对应关系
没有?\uparrow 就是向上的箭头,\mathrel可以构造那个组合的等
号,\cdot 就是那些点,我们不断提升上标,最后那个后花括号稍微
复杂一些。你在一下午就可以学到不止这种程度。其实一下午你就可以学会
输入世界上最复杂的公式。比如像下面这个……我也不知道这是什么
就打进去了。谁知道这是什么告诉我一声。
- 你这么关心文档的外表干什么?重要的是内容!
正确。重要的是内容。但是如果你编辑你的大作的时候还想着字
体该用什么,行间距该多大,…… 你的内容质量是否会受到影响呢?
TeX 使你专心于内容,这正符合你的一贯思想啊!而且顺便你就得到
了世界一流的美观效果,何乐而不为?知之者不如好之者,好之者不如乐之者。
Beautiful presentations can greatly
deepen our perception of difficult concepts.看到漂亮的公式,均称的排版,优雅的字体,你体会到美的旋律,
行云流水,一气呵成…… 即使最难的概念也会轻松的印到你的大脑
里,持久不变! - TeX 有 Word 那样强大的宏吗?
你认为 Word 的宏很强大了?其实 TeX 的宏强大很多。TeX 本身
就是一种宏语言,TeX 的宏才是真正意义上的宏,TeX 的宏是世界上
最强大的宏之一。宏(macro)这个单词意味着强大,用TeX的宏你可以
定义具有参数的变化的结构,TeX 能够用宏来扩展自己的语法,比如
TeX 其实没有循环语句,但是它可以用宏来实现一个loop循环结构。TeX 的宏可以写出强大的“宏包”。我们常说的 LaTeX 其实就是
一个宏包,这个宏包功能如此之大,我们把它叫做一个 “format”,
它几乎完全改变和扩展了 TeX 的能力。 - TeX 能像 Word 那样“套用格式”吗?
所谓的“套用格式”在 LaTeX 里叫做使用文档类。这是一种把样
式和结构分开的做法。LaTeX 是最早支持这种思想的系统之一。现在许多的大学 Harvard, UC, Oxford, UIUC… 都有自己用
LaTeX 定义的毕业论文格式。每一个世界性的学术组织 SIAM, ACM, IEEE, AMS, … 都有自己文档
格式要求的 LaTeX 风格文件, 其中 AMS(美国数学会)还有专门的
amsTeX, 有专门的字体。作者们有了这些风格文件,可以一瞬间把已
经写好的论文转化成投稿需要的格式。真的是一瞬间,你试试在你的
文件开头把\documentclass{article}改成
\documentclass[twocolomn]{IEEEtran}运行 LaTeX,马上就得到一篇可以投到 IEEE transactions,并且满
足他们所有的格式要求的文章。最早的 Word 根本没有这种功能,只是一个简单的可以变化字体
的 WYSIWYG, 但是后来人们发现一旦用 Word 写了一些东西,而想把
所有的小节标题都换一种字体时,就会需要修改几十,几百,上千个
地方,于是 Word 加入了“套用格式”的功能,实现了一定的样式与
结构的分离。后来用户们的要求继续提高,Word 又加入了“宏”,VBScrip
t,…… 但是其实这些功能 TeX 从诞生那一天开始就已经有了,并
且具有天生的一致性。TeX 影响到了后来的各种格式系统,包括
HTML4/CSS, … Word 的那些东西也是从 LaTeX 借鉴过来的。 - TeX 如何高效的管理文献数据库呢?
这个就是 LaTeX 的强中之强了。使用 BibTeX, 作者可以从杂志,
协会等地方得到 BitTeX 文献数据库,然后在自己的文件里只需要写
一个几个字母长的标识符,比如 “karpinski95new”,就可以自动在
论文,书籍末尾加上已经引用的文献的参考文献条目。可以自动排序,
也可以不排序。这种数据库条目是附和国际文献分类规则的,只要一个样式文件
就可以把文献数据自动排成需要的样子。而且各个文献检索引擎,比
如 Citeseer 都能提供 BibTeX 条目给你。所以一般参考文献根本就
不用自己写,省掉许许多多麻烦。想一想,你的论文里要多次出现
[Bhatt and Cai, 1993] 这样的字样,自己写多麻烦。而且这种文献条目的样式可以自己选择。各个协会,比如 ACM,
IEEE, SIAM, AMS … 都会提供附和它们投稿要求的 BibTeX 样式
文件 .bst 给你。只要有了这种样式文件,就可以不费力气的插入各
种样式的参考文献条目了。这里有一些 BibTeX 样式的例子。你可以看看。
- TeX 完全没有 bug 吗?
不能说完全没有 bug. Knuth 用他自己设计的“文学编程语言”
WEB写了TeX的所有代码,到了正式发行的时候,他非常自信的奖励
$1.28 给第一个发现 bug 的人,以后每发现一个 bug, 奖金都会翻
倍,最多 $327.68。后来由于加入了对8字节字符的支持,产生了一
些小 bug. 从1995年到现在,总共只发现一个 bug. 发现 bug 的周
期越来越长,而且后来的 bug 都是一些在排版界很挑剔的人挑出来
的一些“排版学”上的问题了。但是严谨的 Knuth 仍然把它们作为
bug 处理。 - TeX,几十年前的东西了,又不更新,早过时了吧?
TeX 确实已经很老了,它在 1982 年以后基本就没有变化过。但
是你相信世界上有如此完美的程序吗?它几乎没有bug, 而且你可以
在几乎任何计算机上使用它,从PC机到Cray巨型机。经过几十年的风
霜,它仍然是文档排版界的 “No.1”, “state-of-the-art”.它的王牌
地位明显还将在21世纪继续保持!TeX 的版本自从1995年3月就保持在 3.14159 没有变化,最近才
变成了 3.141592。这说明什么呢?这说明它已经趋于完美。你应该
改变所有软件都必需从 0.1, 1.0, 1.1, 1.2, 2.0, …, 3.0, 3.1,
95, 98, 2000, XP, … 不断升级的想法。TeX 是如此的稳定,几十年前的文档在现在输出效果不会有任何
变化,你学习的TeX语法有永远不过时的保证。虽然TeX程序和语言本身没有再变化,但是TeX是可以在不修改主
体的情况下扩展的。TeX的扩展性使得它成为最先支持PDF的系统之一,
你可以参考ConTeXt 专栏。基于
TeX的各种格式,应用风起云涌,百花齐放。TeX 现在还是 SGML,
XML 的后端主力。虽然你几十年前的文档不加修改是不会变化的,但是你可以任意
的选择采用新式的办法处理你的文档。当新的宏包产生的时候,你只
要改几个字就可以使你的“古籍”具有当今最流行的效果。比如转化
成一个带有超级链接和bookmark的PDF文件! - 听说 Knuth 不允许别人改进它的程序?
不是这样。Knuth 不但公开了全部代码,而且欢迎大家利用 TeX
改进成为更加好的排版程序。但是为了保障以前的文档不会失去支持,
保证一个稳定的语言的存在,Knuth 要求修改了的程序的名字不能使
用 “TeX” 这三个字。这点小小的要求我们应该满足。现在确实有很多改进的 TeX, 比如 Omega, NTS, … 他们的思想
是和 TeX 类似的,用过 TeX 的人用起那些程序也很简单。 - 既然有这么好,为什么现在用的人很少呢?
TeX 面向的是对美观程度要求很高的用户,TeX 编辑的是有逻辑
性结构的文档,需要分章节,有插图编号,…… 所以你不会看到有
人用 TeX 记流水帐,一般的画报一样的杂志也不会用 TeX。TeX 用户的多少跟你所处的环境有关系。TeX 是最好的学术排版
系统,它的用户基本上都是数学家,科学家和工程师。用户的数目虽
然少,但是很稳定,因为基本上所有最好的学者都用 TeX 写论文。TeX 的用户一般集中在大学和科研机构里。比如,欧洲原子能研
究中心(CERN)几百人,全部都是 (La)TeX 用户,而且有专人把设计
文档样式作为爱好。这样的气氛很好,大家可以轻轻松松得到样式统
一的文档。而且多人合写论文,书籍是非常方便的。 - 字处理程序都一无是处了吗?
当然不是,要不然它们哪里来的市场?
理论上来讲,TeX 的功能包含了字处理程序的所有功能。但是TeX
是为创造最复杂的文档而存在的。如果你的任务不是很复杂而且你已
经有字处理程序,它还是能完成一般的任务,比如打印一个贴在墙上
的通知,做一个非数学性的幻灯片,写小说,写营业报告,…… - 我听说 TeX 很难学?
你可能经常听说“LaTeX 很难学”这样的传闻。但是你第一次用
TeX 之后就知道它有多简单。通常你用的 TeX 叫做 LaTeX,我可以
在半个小时之内教会一个人用 LaTeX 写出一篇象样的文档。包括章
节,脚注,目录,表格,插图,索引,参考书目…… 如果你能体会
到它有多简单,请告诉你的朋友们:“LaTeX 不用学,只要用就行了。”一般人认为 Word 很容易用。Word 虽然看似很好上手,什么都不
用学就可以用了。但是一旦你的文档需要有章节,目录,图表,索引,
数学公式……你就需要开始学习它的“高级功能”。当然 Word 是能
做出这些东西的。但是后来,你发现你用Word达到同样的功能需要付出几十倍于TeX
的学习时间。Word 不断的在变,不断的在增加 TeX 早就有的功能。
而这些功能的用法之间没有统一性,Word 常常需要几个外部程序的
合作才能完成某项工作。大部分科学家不能忍受这种麻烦,所以很少
有人写论文用 Word.想一想你从开始用 Word 花了多少时间才弄明白怎么自动生成目
录?你的大部分时间全部花在了搞明白“这段字的大小该是多大才能
跟第二段的一样大呢?”,“这两行怎么老是对不齐”之类的问题上
面了。实际上用 LaTeX,你能体会到它的那些简单的命令之间有完美的
统一性,可以触类旁通。你几乎不用脑子就可以写出漂亮的文档,当
然内容不可以不用脑子写啊!剩下的脑子都用来想你的内容吧。 - 听说 LaTeX 插图的时候很麻烦?

LaTeX 插图就这么简单:
\begin{figure} \includegraphics{tex.eps} \caption{This is me, \TeX!} \label{tex} \end{figure}这样插入图片后,图片会被自动放在合适美观的地方,自动被加
上编号,你可以用请看图\ref{tex}来引用这个图片。到时候如果图片被编号1,那么你的句子就变成
“请看图1”。而且你可以用\listoffigures
得到所有图片的列表,包括编号,注释,页码,插到你的目录里
去。如果你的文档使用 hyperref 宏包,还可以在 PDF 文件里生成
可以点击的目录。多方便!
- LaTeX 在排版程序代码时有什么好处吗?
你只要用几句话设置好 listings 宏包:
\usepackage{listings} \lstloadlanguages{C, csh, make} \lstset{language=C,tabsize=4, keepspaces=true, breakindent=22pt, numbers=left,stepnumber=1,numberstyle=\tiny, basicstyle=\footnotesize, showspaces=false, flexiblecolumns=true, breaklines=true, breakautoindent=true,breakindent=4em, escapeinside={/*@}{@*/} }就可以把你成千上万行的代码都排成下面这个效果。

而且你可以在代码里插入标记,可以在文章里引用这个标记,比
如你可以在代码某处插入一个注释。/*@\label{code:restart}@*/ int restart_card(.......) { ..... }这样的注释在排版时会被 LaTeX 去掉。注释的方式是在
\lstset 里定义的,就是上面那个
“escapeinside={/*@}{@*/}“.你以后就可以说:“在第\ref{code:restart}行,我
们重新启动。”排版时,\ref{code:restart}会被变成
正确的行号。以后即使程序改动,行号也会完全正确!有的人看出来了,这里排版出来的程序使用的是非等宽字体。而
通常程序编辑时应该使用等宽字体。如果你喜欢等宽字体,你可以很
简单的换成 Courier 之类的字体。但是其实程序一旦印在纸上,就
没有必要用等宽字体了,因为等宽字体只是用来方便你编辑,非等宽
字体印出来要好看的多。 - 别人的论文投稿时都是 PDF, PS,我用TeX,出版社接受吗?
你有一个很重要的问题没有搞清楚。PDF 和 PS 是 hardcopy 格
式, 是 Adobe 公司创造的试图“与纸比美”的文件交换格式,它们
是与纸张效果完全一样的。它们是了不起的发明,但是你不能直接编
辑出漂亮的 PDF 和 PS 文件,它们都是用其它程序生成的。虽然在这个年代,TeX 写的文档最后打印的时候大多转换成 PS,
PDF,但是 TeX 生成的 dvi 文件不依赖任何 hardcopy 格式。在没
有 PS, PDF 的年代,TeX 还是具有高质量的输出。PS 和 PDF 使得
TeX 如虎添翼,TeX 生成的 PDF 比其它程序生成的都要漂亮。你看
看这些样例都是PS, PDF, 甚至
DJVU 格式。如果你想把 Word 转成 PDF,你需要Adobe
Acrobat完全版,价格是 $249. 你能接受吗?出版社基本上都可以接受任何 PDF, PS 文件。即使是不能处理
LaTeX 的小出版社,你也可以把你的文件转成 PDF 给他们,其实你
甚至可以把 LaTeX 转换成 HTML(latex2html), Word 文档
(tex2doc), … 出版社有时要求必须用 LaTeX 的源文件,以便把你
的文章插入论文集。所以你用 LaTeX 写文档不会有任何问题,反而
有时是必须的。看看这些大出版机构,每一个都把 LaTeX 的名字放在最前面,有
些甚至只接受 (La)TeX. - 有人说 XML, MathML 要取代 TeX,你信吗?
XML, MathML, 甚至 ChemML, 它们在本质上是跟 TeX 完全不同的
东西。TeX 是一种程序语言,你可以用 TeX 写出一个可以处理 XML
的宏包,而 XML 只是一种数据。可以这样理解,“TeX 是动词,而
XML 是名词。”这些标记语言要变成漂亮的可以印在纸上的文档,还得靠 TeX 这
样的后端支持。所以 XML 和 TeX 的关系不是对立的,而是朋友关系。很多人,比如PRAGMA公司正在从事有关
XML与TeX的结合的研究。 - TeX 能处理汉字吗?
当然能。TeX 是跟语言无关的,也就是说,它可以处理任何人类
语言。在 TeX 的眼里没有语言,只有不同大小的“盒子”,这些盒
子里装的可以是汉字,也可以是英语,法语,阿拉伯语,西伯来语……
在 LaTeX 下,你可以用 CJK 宏包方便的编辑汉字文档,经过CJK宏
包,汉字就变成跟其它语言一样的东西了—盒子。 - 虽然如此,但是我听说LaTeX处理汉字不符合中国人的习惯
LaTeX 处理汉字主要依靠的是 CJK 宏包,CJK 的主要任务是实现
汉字编码的映射,而不管中文格式的问题,它是由德国学者 Werner
Lemberg 设计的。中文排版确实有很多方面跟英语不一样,比如很多
人抱怨为什么每一节后面的那一段都不缩进,因为 article 格式是
按照英文排版方式。但是你可以修改这一切,让你的文档都符合你自己设定的同一个
样式。这是相当容易的。你也可以拷贝别人的样式定义,这就不用你
自己操心样式了。有些出版社还会提供它要求的格式的 LaTeX 格式
给你。 - TeX 除了编辑论文还能做什么?
TeX 是一个非常多才多艺的程序。它不但可以编辑论文,书籍,
幻灯片,学术杂志,还可以编辑乐谱,化学分子图,电路图,国际象
棋,中国象棋,甚至围棋棋谱,……事实上只有少量文档不适合用
TeX 编辑。你可以到这里看看样品
。TeX 的一个宏包 MusiXTeX 可以做出世界上最漂亮的乐谱。你可以在
MusiXTeX的
网页找到很多乐谱。

- 什么东西不适合用 TeX 编辑?
TeX 不是万能的,它跟世界上所有事物一样,都有局限性。你不
必要把它当成信仰,要求无论什么都用 TeX 排版。通常不适合直接用 TeX 编辑没有逻辑结构的东西,比如报纸,画
报,广告等…… 那些一贯是 Macintosh,Adobe 和 Quark 的天下。
这里所谓的“逻辑结构”是说要分很多章节,有插图,交叉引用,参
考数目,……像彩色杂志,图片多多,还有各种变化多端的分栏方式,肯定不
能用 TeX 来排版。所以 TeX 还是有一定局限性的。除非你已经在你的论文里用过 TeX, 而且非常喜欢它,否则你可
能不想用它来编辑一封写给你妈妈的信。另外,小说家肯定不需要用 TeX,因为小说全部都是简单的段落,
最多分几个章节,没有什么交叉引用,参考书目,而且我猜小说家在
写作的时候看到\begin{enumerate}… \end{enumerate} 肯定会很
头疼 🙂 - 我是初学者,你推荐使用什么发行的 TeX? 我应该用 LaTeX 吗?
我认为最好的发行是 TeXLive CD,它不但包含了所有操作系统需
要的程序,而且有许许多多宏包,如果你不是特别特殊的用户,有了
它你可以完成你的任何任务。而且它直接拷贝到硬盘上就可以用了,
甚至可以从光盘运行。TeX 的中文支持需要中文字体。如果你不喜欢了解太多的细节,
可以到 http://www.ctex.org 下载他们配置好立即可用中文的 CTeX
套装。如果你硬盘很小的话可以安装 CTeX 套装基本版。请看
这里你应该首先学会使用 LaTeX 的基本功能。看lshort这本书自学,大概也就是 90 分钟
的时间吧。以后如果你感兴趣就可以看看 The TeXbook, 里面有很多
底层的细节。请参考这些资料。
- TeX 是什么?

