Tex/LaTeX¼ò½é

内容

  1. 什么是TeX?
  2. TeX/LaTeX如何发音?
  3. TeX的历史与未来
  4. 常见的TeX宏集: LaTeX, Plain TeX, AMSTeX/AMSLaTeX, ConTeXt
  5. TeX的优点与不足

什么是TeX?

  电子排版系统的出现给印刷出版业带来了一场革命,利用电子计算机及各种辅助设备,可以完成从文稿、图表的录入、编辑、修改、组版,直至得到各种不同用途、不同质量的输出结果。利用电子排版系统,可以减轻劳动强度,缩短出版周期。
  目前世界上有许多电子排版系统。这些系统各有特点,也各有自己的适用范围。TeX 就是一种优秀的电子排版系统。
  TeX 提供了一套功能强大并且十分灵活的排版语言,它多达900多条指令,并且 TeX 有宏功能,用户可以不断地定义自己适用的新命令来扩展TeX系统的功能。许多人利用 TeX 提供的宏定义功能对 TeX 进行了二次开发,其中比较著名的有美国数学学会推荐的非常适合于数学家使用的 AMS-TeX 以及适合于一般文章、报告、书籍的 LaTeX 系统。
  TeX 系统是公认的数学公式排得最好的系统。美国数学学会(AMS)鼓励数学家们使用 TeX 系统向它的期刊投稿。世界上许多一流的出版社如 Kluwer、Addison-Wesley、牛津大学出版社等也利用 TeX 系统出版书籍和期刊。
  大部分的 TeX 系统都是免费的。Knuth 教授还公开了他的全部源程序。TeX 系统目前已经在数百种计算机系统上得到实现。TeX 系统的排版结果 DVI(DeVice Independent)文件与输出设备无关。DVI 文件可以显示、打印、照排,几乎可以在所有的输出设备上输出。TeX 排版源文件及结果在各种计算机系统上互相兼容。
        注意真正的TeX标志为TEX,这三个字母相靠得很近,而且 中间的那个E有点儿下沉。但在无格式文件中,就写为TeX。

Back to Top


TeX/LaTeX如何发音?

  TeX 的名字是由大写的希腊字母¡°tec¡±(tau, epsilon, chi)组成。在希腊语中这个词的意思是¡°科技¡±和¡°艺术¡±,这也解释了它的发音。¡°T¡±和¡°E¡±就像在¡°technology¡±中的发音一样,而¡°x¡±的发音类似于苏格兰语单词¡°loch¡±或德语单词¡°ach¡±中的¡°ch¡±(同bach(巴赫)中的ch(赫)),也类似于西班牙语中的¡°j¡±或俄语中的¡°kh¡±。
        因此,TeX读作tech,LaTeX读作lei tech ,绝对不念 teks/lateks.

Back to Top


TeX的历史与未来

  七十年代末,Donald E. Knuth(高德纳)在看到其多卷巨著¡°The Art of Computer Programming¡±第二卷的校样时,对由计算机排版的校样的低质量感到无法忍受。因此决定自己来开发一个高质量的计算机排版系统,这样就有了 TeX。
  TeX 的第一版于 1978 年面世。在经过了不断的改进后,1982 年版的 TeX 是一个十分稳定的版本。从此以后,TeX 没有较大的变动,只有很少部分的改进和错误修正。现在几乎所有的操作系统平台下,都有相应的 TeX 软件,而且用它们排版同一个文件得到的输出结果是相同的。TeX 目前的版本是 3.141592,很接近圆周率π。每有一新的版本,就会加上一个π的小数点后的数。所以我们已经知道下一版本的 TeX 是 3.1415926,最终将收敛到π。这也代表了 TeX 不断追求完美的理想。
  TeX 的源程序是用 Pascal 写成的,原因是 Knuth 希望 TeX 尽可能方便地移植到其它的操作系统中去。当时 Pascal 是最适合于这一要求的编程语言。这也使得 TeX 现在已经在几乎所有的计算机系统中得到实现。
  TeX 的另一个重要的特征就是它的输出是与设备无关的。TeX 的输出文件称为 DVI 文件,即是¡°Device Independent¡±。一旦 TeX 处理了你的文件,你所得到的 DVI 文件就可以被送到任何输出设备如打印机,屏幕等并且总会得到相同的结果,而这与这些输出设备的限制没有任何关系。这说明 DVI 文件中所有的元素,从页面设置到文本中字符的位置都被固定,不能更改。
  TeX 现在已经被它的开发者 Knuth 所¡°冰封¡±(frozen),新版本的 TeX 只有少许改进和错误修正。这些变动必须保证不会使得即使是写于 1982 年的 TeX 文档无法编译,TeX 自带了测试文件来确保这一点。如果测试文件文件的输出结果不同于预定的结果,那么这个排版系统就不能够被称为¡°TeX¡±。所以像一些对 TeX 有很大改进的软件,如¡°Omega¡±等将不能被称为¡°TeX¡±,尽管它也是基于¡°TeX¡±的。
  在设计 TeX 的同时,Knuth 还设计了一个字体生成程序 Metafont。Metafont 是独立于 TeX 之外的,但又与 TeX 有着非常密切的联系。Metafont 生成的只是位图字体,当对字体进行缩放时的效果不佳。对于如何得到像 Type1 字体一样的轮廓字体,现在还在研究之中。与 TeX 一样,Knuth 也¡°冰封¡±了 Metafont。所以 Metafont 的进一步的改进和发展将会由其他人来完成,而且名字也将不再是 Metafont。
  虽然 TeX 在过去的二十多年中没有大的变化,但这并不意味着 TeX 是一个僵化的系统。恰恰相反,TeX 开放的设计使得它能够很容易的适应新的要求。例如,在没有改动内核的情形下,TeX 很容易地实现了对 PostScript 字体和外部图形的支持。TeX 还是第一个能够自动生成 HTML 的字处理软件。最近,TeX 又开始增加了在不借助其它工具(如 Adobe Distiller)的条件下生成 PDF 的扩展功能。下面列出的几个项目都是正在进行中,对 TeX 的功能进行了扩展。

PDFTeX
     
完全兼容标准的 TeX,但能够给出 PDF 输出。它也可以输出标准的 DVI。
e-TeX
     
不仅完全兼容标准的 TeX,还支持一种¡°扩展模式¡±。在¡°扩展模式¡±中引入了许多新的特性和增强功能。这些新的特性和增强功能提供了更好的编程工具和对输出的控制。
Omega
     
这是一个几乎是完全重新写过的,支持 Unicode 的 TeX 程序。Omega 有很多特征都超出了 Knuth 对 TeX 的原始设想。它采用了与 TeX 不同的方法来处理字符,使得可以处理非拉丁语系的文本。也支持从右到左,从上到下的排版方式。
NTS
     
NTS 代表¡°New Typesetting System¡±。Knuth 已经停止发展 TeX,并决定任何超越 TeX 的扩展都不能被称为 TeX。NTS 现在还只是一些对于 TeX 的后续继承者的设想和概念的集合,还不是一个实际上的系统。自然,NTS 会继承 TeX 的绝大部分让我们热爱的特征,并且在很多方面对其加以发展。NTS 可能最终会取代 TeX 或 e-TeX。
MLTeX
     
这个 TeX 的扩展引入了命令 \charsubdef,使得可以更为简单方便的使用 8 bit 字符。不过,与 e-TeX 相比,这只是一个微小的改进。
¡¡

Back to Top


常见的TeX宏集

Plain TeX
  为方便 TeX 的使用者,TeX 的专家提供了包含很多用户级命令,容易学习使用的宏集。其中最重要的就是由 Knuth 编写的¡°Plain TeX¡±宏集。现在世界上的绝大多数宏集都是基于这个最早问世的宏集的。它是如此的重要以至于当我们谈到 TeX 时, 也可以把 TeX 和 Plain TeX 等同起来,尽管 TeX 事实上不仅仅是 Plain TeX。
  Plain TeX 是一个非常基本的,但是却有着异常强大的功能的宏集。构建 Plain TeX 的很多命令都是¡°底层 ¡±的。也就是说这些命令不能被用来写你的书稿,但是却可以用来设计可以被用来写你的书稿的标记语言。LaTeX 和 ConTeXt 就是这样的¡°高级¡±标记语言。对于希望深入了解 TeX 或希望自己来做所需的工作的人来说,Plain TeX 无疑具有巨大的吸引力。Knuth 的¡°TeXbook¡±一书从各个方面展示了 Plain TeX 的强大功能。该书用 Plain TeX 排版并使用了很精悍的宏命令(只有约 700 行代码)。如果你有兴趣,可以追随着 Knuth 的脚步去使用他的 manmac 宏。

LaTeX
  Leslie Lamport 开发的 LaTeX 是当今世界上最流行和使用最为广泛的 TeX 宏集。它构筑在 Plain TeX 的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用 TeX 的强大功能。使用 LaTeX 基本上不需要使用者自己设计命令和宏等,因为 LaTeX 已经替你做好了。因此,即使使用者并不是很了解 TeX,也可以在短短的时间内生成高质量的文档。对于生成复杂的数学公式,LaTeX 表现的更为出色。
  LaTeX 自从八十年代初问世以来,也在不断的发展。最初的正式版本为 2.09,在经过几年的发展之后,许多新的功能,机制被引入到 LaTeX 中。在享受这些新功能带来的便利的同时,它所伴随的副作用也开始显现,这就是不兼容性。标准的 LaTeX 2.09,引入了¡°新字体选择框架¡±(NFSS) 的 LaTeX ,SLiTeX,AMSLaTeX 等等,相互之间并不兼容。这给使用者和维护者都带来很大的麻烦。为结束这中糟糕的状况,Frank Mittelbach 等人成立了 LaTeX3 项目小组,目标是建立一个最优的,有效的,统一的,标准的命令集合。即得到 LaTeX 的一个新版本3。这是一个长期目标,向这个目标迈出第一步就是在 1994 年发布的 LaTeX2e。LaTeX2e 采用了 NFSS 作为标准,加入了很多新的功能,同时还兼容旧的 LaTeX 2.09。LaTeX2e 每 6 个月更新一次,修正发现的错误并加入一些新的功能。在 LaTeX 3 最终完成之前,LaTeX2e 将是标准的 LaTeX 版本。

LaTeX2e
       
由于LaTeX相当普及,以及它在许多原本没有想像到的领域中 的扩展,再加上计算机技术的日新月异,特别是价格低廉, 但功能强大的激光打印机的出现, 使得相当广泛的一类格式都冠以LaTeX的标签。 为了尝试建立一个真正的 改进标准,在1989年由Leslie Lamport, Frank Mittelbach, Chris Rowley 和Rainer Sch?pf创立了LaTeX3项目。 他们的目标是建立一个最优的,有效的 命令集合,这些命令是来自于各种软件包为了实现 某一目的而设计出来的。
        正如项目名称所表明的,它的目标就是得到LaTeX的一个 新版本3。然而,由于这是一个长期目标,朝向这个目标 迈进的第一步就是在1994年中发行了 LaTeX2e及出版了Lamport 基本手册第二版,同时还有一本新书*,专门描述 在新系统中许多可用的扩展软件包和 LaTeX程序设计。LaTeX2e 是在LaTeX3出现之前的现行标准版本。
        实际上,在LaTeX2e出现之前, 其处理字体安装和选择的一些部分已经以 新字体选择框架(或NFSS)的形式公开了,而且被许多组织 或个人集成到其软件中。这种框架有两个版本,而且不幸的 是它们并不兼容,但分别是相应于LaTeX2.09和 LaTeX2e。后来以一种完全 与2.09版本兼容的方式对NFSS 进行了重新实现。

AMSTeX / AMSLaTeX
  AMSTeX 是美国数学会提供的,在 Plain TeX 基础上开发的 TeX 宏集。它主要用于排版含有很多数学符号和公式的科技类文章或书籍。AMSTeX 给出了许多高级命令,可以让使用者很方便地排版大型的,复杂的数学公式。AMSTeX 排版数学公式等的功能通过 AMSLaTeX 中的宏包 amsmath 在 LaTeX 中得到实现。AMSTeX 目前的版本为 2.1。
  AMSLaTeX 包括两部分,一是上面提到的 amsmath 宏包,主要的目的是用来排版数学符号和公式。另一部分是 amscls,提供了美国数学会要求的论文和书籍的格式。AMSLaTeX 目前的版本为 2.0。
  在提供 AMSTeX 和 AMSLaTeX 的同时,美国数学会还提供一套数学符号的字库,AMSFonts。这套字库中增加了很多 TeX 的标准字库 Computer Modern 所没有的一些数学符号,粗体数学符号等。AMSFonts 现在的版本为 2.2,有 Metafont 和 Type1 两种字库提供下载。

ConTeXt
  ConTeXt 是 Hans Hagen 开发的比较新的 TeX 宏集。它也是构筑在 Plain TeX 的基础之上,让使用者更为方便的利用 TeX 的各种功能。从功能的角度来看,ConTeXt 和 LaTeX 是相似的,仅管实际上两者有着很多不同之处。ConTeXt 还有一个不同寻常的特征就是它支持英语,德语和荷兰语三种界面,而其它的 TeX 宏集,包括 Plain TeX 都只支持英语。ConTeXt 的这一特征应当是由它的起源决定的。1990 年开始开发的 ConTeXt 最初的目的是为了满足荷兰 PRAGMA ADE 公司中的不太熟练的 TeX 使用者的要求,为他们提供一个荷兰语的界面。所以一开始 ConTeXt 提供的所有用户级命令都是荷兰语的。随着逐渐的发展成熟,1994 年有了荷兰语的的用户手册,紧接着,又增加了很多新的功能和德语,英语的界面。由于 ConTeXt 开发的比较晚,所以很多 TeX 的最新进展都被引入到其中。与 PDFTeX 和 e-TeX 的密切结合,更是增添了它的魅力。ConTeXt 目前仍在不断的发展中,更新的速度很快。从去年开始,ConTeXt 又增加了对中文的支持。虽然还有些不尽如人意的地方,但随着时间的推移,是会不断加以完善的。

Back to Top


TeX的优点与不足

在一个充斥着¡°所见即所得¡±(WYSIWSG)桌面出版软件的情况下来使用 TeX 确是有点令人奇怪。但是,在某些情形下,你会感到 TeX 是最好的,甚至是唯一适合的系统。

首先我们来看一下 TeX 的优势所在:

1. 高质量的输出 TeX 遵循传统的排版规则,以排版的质量为最重要的目标。如果你把 TeX 的输出结果和用其它的排版软件排版相同的文本所得到的结果加以比较,你就会发现其中的区别。

2. 超常的稳定性 自从 TeX 出现以来,只有一些微小的改动。也就是说,十几年前的 TeX 文件用现在的 TeX 系统排版得到的结果与十几年前得到的结果是一样的。稳定性还体现在 TeX 系统极少会崩溃,可以处理任意大小的文件,即使你的计算机的内存很少,TeX 也可自如的工作。

3. TeX 是可编程的 TeX 是一种宏命令编程语言。你可以用很少的命令来完成非常复杂的工作。如果需要的话,你也可以重新定义 TeX 的所有命令来得到特殊的效果。

4. 高度的灵活性 TeX 自从出现以来其内核只有微小的改动。但是由于其内核的设计方式,世界上的 TeX 使用者可以让 TeX 做几乎任何工作。你可以用 TeX 来排版英文文本,也可以排版德文,俄文,中文等多种语言。你还可以用 TeX 来排版乐谱,象棋,围棋棋谱等等。

5. 简单方便 TeX 文档是 ASCII 码的文本文件。因此,即使你手边没有 TeX 系统,你也可以看懂绝大部分的内容。TeX 文件的这种特点使得它占用很少的存储空间,也可以很方便的用 email 来传输。

6. 良好的通用性 目前为止,TeX 几乎在所有的计算机操作系统平台上得到实现。如:Atari,Apple,Macintosh,Unix,VMS,MS-DOS,MS-Windows 和 OS/2 等等。TeX 的源文件可在不同的平台之间自由的交换,而得到的输出是完全相同的。

7. 低廉的价格 TeX 是免费软件,它的源程序也是免费的。你可能仅仅需要支付邮费,甚至于一分不花地得到适合你的 TeX 系统。世界上有很多非常好的 TeX 免费软件如:teTeX,mikTeX,fpTeX 等等。同时也有一些具有各自特点(如或多或少的所见即所得特性的)和提供专家级帮助系统的商业版本。

8. 超级技术支持 由于 TeX 并不是被某个公司所垄断开发,所以世界各地的使用者设计了统一的技术支持的方式。这通常是通过因特网以 email, WWW, Usenet 或 Ftp 的方式来提供,有时也可能通过电话或传真的方式。绝大多数情况下这些技术支持都是免费的,这也是 TeX 的精神。

9. TeX 是一种乐趣 使用 TeX 不仅仅是一种工作手段,也是一种乐趣。它有挑战,也有荣誉。很多人在熟悉了 TeX 之后都开始把使用 TeX 作为一种爱好,而不是一件枯燥无味的劳动。

在展示了 TeX 的优秀之处后,也得承认 TeX 也有一些不足的地方:

1. TeX 不是在一个下午就能完全学会的,除非你是一个真正的天才。当你开始学习并使用它的时候,你将会不停的去翻看 TeX 的参考手册来寻找一个 TeX 命令。你也会发现 TeX 常常不理会你键入的命令,还给出一个让你感到迷惑的错误讯息。这一切都说明了掌握 TeX 需要一个比较长而且艰难的学习过程。TeX 的一些扩展如 LaTeX 则要相对简单的多,使用起来也比 TeX 方便,一个新手完全可以在一个下午或者更短的时间内学会开始使用 LaTeX。

2. 当发生错误的时候,TeX 会给出一些信息来提示你。但很多情况下并不足以是你迅速准确的找到错误之所在。尤其对刚刚开始学习的新手来说更是如此。

3. 像 TeX 这种宏语言不同于其它的计算机语言,如 C,Pascal 等,大多数人并不了解。因此,当你想要写自己的宏命令时,你需要对 TeX 有比较深入的了解才能写出牢固可靠的宏命令。

4. TeX 不是所见即所得的。尽管市场上有些近似于所见即所得的商业版本,但即使与最普通的字处理软件比,也还是有不小的差距。

Back to Top