网站地图
TeX(文本排版系统)

TeX是由著名的计算机科学家Donald E. Knuth(高德纳)发明的排版系统,利用TeX可以很容易地生成高质量的dvi文件,打印输出。利用dvips,dvipdfmx,pdfLaTeX等程序生成pdf,ps文件,LaTeX2html生成html文件。 它在学术界十分流行,特别是数学、物理学、统计学与计算机科学界。TeX被普遍认为是一个很好的 排版工具,特别是在处理复杂的数学公式时。利用诸如是LaTeX等终端软件,TeX就能够排版出精美的文本。通过CTAN上的宏包可以扩展其功能,可以作幻灯片,定义模板。中文支持可以由CCT、CJK、ctex等来完成。

正式名称】:

纯文本名称】:TeX

中文释义】:基于宏的流行的文本格式化程序 (它是包括LaTeX和teTeX在内的其它此类格式化程序的基础)

概述

电子排版系统的出现给印刷出版业带来了一场革命,利用电子计算机及各种辅助设备,可以完成从文稿、图表的录入、编辑、修改、组版,直至得到各种不同用途、不同质量的输出结果。利用电子排版系统,可以减轻劳动强度,缩短出版周期。

什么是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的起源

在所有的可以排版科技著作的计算机格式化程序中,要属 Stanford大学Donald E. Knuth在1977年5月开始设计的TeX程序功能最强了. 其名字来源于希腊字母tec。正是由于这个原因, 其最后一个字母X的发音并不是/ks/,而是/x/,类似于苏格兰语单词loch或者德语单词ach中的ch,西班牙语中的j,俄语中的kh,汉语普通话中的“喝”的声母。 这个名字强调指出了数学文本的印刷是该程序功能中不可分割的一部分。注意真正的TeX标志为

除此以外,Knuth还设计了另一个软件METAFONT, 以生成字符的字体。在标准的TeX软件包中有75种不同设计 尺寸的字体,而且每种字体有八种不同的放缩比例。所用这些字体都是用METAFONT 程序生成的。为了满足其它应用的需要,还设计了其它字符的 字体,如古斯拉夫语或日语字母的字体,有了这体文件, 也可以把相应文本以书籍质量排版出来。

TeX 程序

最基本的TeX程序只是由一些很原始的命令组成, 它们可以完成简单的排版操作和程序设计功能。 然而,TeX也允许用这些原始命令定义一些更复杂的高级命令。这样就可以利用低级的块结构,形成一个用户界面相当友好的环境。

在处理器运行期间,该程序首先读取所谓的格式文件, 其中包含各种以原始语言写成的高级命令,也包含分割单词的连字号安排模式。接着处理程序就处理源文件,其中包含要处理的真正文本,以及在格式文件中已定义了的格式命令。创建新格式是一件需要由具有丰富知识程序员来做的事情。 把定义写到一个源文件中,这个文件接着被一个名叫iniTeX的特殊版本的TeX程序处理。它采用一种紧凑的方式存贮这些新格式,这样就可以被通常TeX程序很快地读取。

TeX的稳定性

TeX是非常稳定的程序,高德纳悬赏奖励任何能够在TeX中发现程序漏洞(bug)的人。每一个漏洞的奖励金额从1美分开始,并每年翻倍,直到327.68美元封顶。然而高德纳从未因此而损失大笔金钱,因为TeX中的漏洞少之又少,而真正发现漏洞的人在获得支票后,宁愿将其裱起来留作纪念也不愿拿去兑现!

到目前为止,关于TeX的最后一个bug是被高德纳自己发现的。

几种TeX的格式

◆Plain

Knuth设计了一个名叫Plain TeX的基本格式, 以与低层次的TeX互应。这种格式是用TeX处理文本时 相当基本的部分,以致于我们有时都分不清到底哪条指令是真正的处理程序TeX的,哪条是这个特殊格式的。 大多数声称只使用TeX的人,实际上指的是只用Plain TeX。

Plain TeX也是其它格式的基础,这些格式进一步 加深了某些人认为TeX和Plain TeX是同一件事的印象。

Plain TeX的重点还只是在于如何排版的层次上, 而不是从一位作者的观点出发。 当然对它的深层功能的进一步发掘,需要相当丰富的编程技巧。因此它的应用就需要高级排版和程序设计人员。

正是由此这种原因,美国计算机学家Leslie Lamport 在二十世纪八十年代初期开发了LaTeX格式,这种格式提供了一组生成复杂文档所需的更高级命令。 利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX 所提供的强大功能,能在几天, 甚至几小时内生成很多具有书籍质量的印刷品。 对于生成复杂表格和数学公式,这一点表现得尤为突出。

LaTeX相对于其基础Plain TeX而言,更像一个包装语言。 它可以在作者根本不知道所以然的条件下,自动给出标题,章节,表格目录,交叉索引,公式编号,文献引用,浮动图表。版面布局信息包含在类文件中, 这些类文件并不是位于源文件中的。这些布局可以改动,也可以直接采用。

LaTeX是在二十世纪八十年代出现的,就像其它软件那样, 它也定期地进行更新和修订。经过很多年后,版本号 已固定为2.09,而修订只是用日期来区分。最近的一次大修订发生在1991年12月1日,其后直到1992年3月25日为止,还有几次小的修订。

由于LaTeX相当普及,以及它在许多原本没有想像到的领域中的扩展,再加上计算机技术的日新月异,特别是价格低廉, 但功能强大的激光打印机的出现, 使得相当广泛的一类格式都冠以LaTeX的标签。 为了尝试建立一个真正的改进标准,在1989年由Leslie Lamport, Frank Mittelbach, Chris Rowley 和Rainer Schpf创立了LaTeX3项目。 他们的目标是建立一个最优的,有效的命令集合,这些命令是来自于各种软件包为了实现 某一目的而设计出来的。正如项目名称所表明的,它的目标就是得到LaTeX的一个新版本3。然而,由于这是一个长期目标,朝向这个目标 迈进的第一步就是在1994年中发行了 LaTeX2e及出版了Lamport 基本手册第二版,同时还有一本新书,专门描述 在新系统中许多可用的扩展软件包和 LaTeX程序设计。LaTeX2e是在LaTeX3出现之前的现行标准版本。

实际上,在LaTeX2e出现之前,其处理字体安装和选择的一些部分已经以 新字体选择框架(或NFSS)的形式公开了,而且被许多组织 或个人集成到其软件中。这种框架有两个版本,而且不幸的 是它们并不兼容,但分别是相应于LaTeX2.09和 LaTeX2e。后来以一种完全 与2.09版本兼容的方式对NFSS进行了重新实现。

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相比,这只是一个微小的改进。

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的开发为之后的书籍排版、公式编辑等带来了极大的便利,但对于普通的用户来说想要入门却存在一定的困难,对于已经有一定TeX使用基础而想要进一步提升的用户来说也并非易事。在这种情况下一本专业优秀的关于TeX的教程将给用户带来极大的便利。

由北大的LaTeX牛人刘海洋编写的《LaTeX入门》便是一本优秀的介绍怎样使用LaTeX这个强大工具的书籍,对于入门级的用户和想要在原来基础上进一步提升的用户都是非常适合的。

由电子工业出版社出版的该书的封面如图所示。

TeX 的不足

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

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

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

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


相关文章推荐:
高德纳 | 排版工具 | 电子排版系统 | 宏定义 | 美国数学学会 | 牛津大学出版社 | 源文件 | 兼容 | Donald E. Knuth | 苏格兰 | 古斯拉夫语 | 排版 | 处理器 | 源文件 | 高德纳 | 源文件 | 兼容 | 兼容 | Unicode | 排版 | 宏命令 | email | 计算机操作系统 | Apple | MS-DOS | 源文件 | 免费软件 | email | 宏命令 |
相关词汇词典