目录

TeX及其衍生系统

简介

TeX是斯坦福大学教授 Donald E. Knuth 设计和开发的一个计算机排版系统,它不仅能排版复杂的数学公式和科学技术内容,而且能胜任许多对其它 系统而言相当困难的工作,所以在科学和技术领域有着非常广泛的用户。随着计算机网络技术的进步,网络 出版必将获得长足发展。因此,TeX及其衍生系统也将得到广泛的应用。

名字的由来

按照Knuth博士在《TeXbook》一书中的介绍,TEX源自希腊语,是英文单词“technology”的词根,意思 是“艺术与技术”,所以它的发音应该是“tech”。这表明排版质量是TeX系统首要的关注点。

你会发现TeX中三个大写字母的间距比较小,而且中间的字母还稍稍下沉。Knuth博士这样设计的目的有两个, 与其他系统相区别以及展示系统的排版能力。

由于HTML语言能力的限制,不使用图像很难表达TeX及其衍生系统的名字,所以在本站中为了方便,使用它们 在系统中的命令名,在此提醒读者注意。

历史

TeX系统的开发始于二十世纪七十年代末,Knuth博士正在修订著作《计算机程序设计艺术》的第二卷。由于 出版商使用的数字排版系统的输出质量无法令他满意, 所以博士决定自己开发一个系统。

为了开发TeX系统,Knuth博士设计了一个叫做“Web”的“文学化编程”系统。同名的语言用来同时书写 文档和程序,其中文档和程序部分用不同的标记分开,再用工具将文档和程序分开,其中的程序实际上 是TeX语言,一种专为排版而设计的语言的编译器。“Web”系统的文档部分正是用TeX语言(并不准确, 暂且这么说)表达的。

最初的系统采用7位ASCII码,在其完成后,8位ASCII码成为标准,博士又对系统进行了修改,在八十 年代末完成最终版本。

工作原理

TeX系统由两部分组成:TeX语言和这个语言的编译器。首先设计版面,比如文档及篇章节的标题、作者、日期 用什么样的字体,应该在什么位置,正文用什么字体,分几栏等。设计完成后用TeX语言实现这一设计,这被 称为格式。格式被编译后以二进制形式保存在磁盘上。然后文档作者使用格式所定义的命令编写文档,加载 格式后再编译文档,得到最终结果。结果有两种文件格式: dvi和pdf格式。

在已知的几种格式中,LaTeX格式的使用 最为广泛。它以常用的英文单词定义了文档及篇章节的标题、作者、日期,用户只须在括号中填入内容,就 可轻松完成文档的写作。不仅如此,大批类或包 进一步增强了LaTeX在幻灯片、图形、图像、表格、色彩方面的能力,最终使其成为科学和技术文档作者 的首选。

衍生系统

TeX系统的诞生,不仅提供了一个现实、可用的数字排版系统,更是为数字排版的发展打下了基础,并提供 了一个方向。因而以他为基础,产生了许多衍生系统。当然这些系统的名字不能再称为TeX。

eTeX系统可以工作在两种模式下:在兼容模式下其行为与TeX系统完全一致。扩展模式下,eTeX系统 增加了一组不多,然而却非常有用的命令以及自右向左排版的能力。

pdfTeX可以工作在dvi和pdf两种模式下。在dvi模式下与TeX系统一致。在pdf模式下支持png、 pdf、jpg(jpeg)、mps等图形格式,且输出的文件格式为pdf。

TeX、eTeX、pdfTeX都是8位系统,因为在其内部一个字符用8位表示,对于拼音文字8位足够, 但对于中日韩(CJK)文字来说,如果不经过特别处理,比如在LaTeX格式中使用CJK包,就无 法排版。omega是一个全新的系统,其内部用16位表示一个字符,因而可以直接使用CJK而无需特别 处理。借助于其特有的OTP,可以直接使用几乎任意编码的输入。

aleph系统是一个综合了eTeX和omega特征的系统。秀文系统的编译器就是以aleph为基础, 以c++语言实现,并且运行在一个单独线程中。基于LaTeX的aleph格式被称为lamed。

XeTeX也是一个基于16位Unicode的系统。前面几个系统在排版前,字体的各种参数必须被放在一个 后缀为tfm或ofm的文件中。而XeTeX可以直接使用opentype、truetype等系统字体。它产生 一个中间格式叫做xdv,但是没有可以打开这种格式的阅读器,所以必须用其他程序将xdv转换 为pdf格式。

luaTeX是一个以pdfTeX为基础的系统,以pdf为输出。它同样可以直接使用opentype、truetype 等系统字体。最重要的是它集成了一个lua语言引擎,从而给格式和包的作者以前所未有的能力。