TeX 簡(jiǎn)介
電子排版系統的出現給印刷出版業(yè)帶來(lái)了一場(chǎng)革命,利用電子計算機及各種輔助設備,可以完成從文稿、圖表的錄入、編輯、修改、組版,直至得到各種不同用途、不同質(zhì)量的輸出結果。利用電子排版系統,可以減輕勞動(dòng)強度,縮短出版周期。
目前世界上有許多電子排版系統。這些系統各有特點(diǎn),也各有自己的適用范圍。
TeX 就是一種優(yōu)秀的電子排版系統。
TeX 提供了一套功能強大并且十分靈活的排版語(yǔ)言,它多達 900 多條指令,并且
TeX 有宏功能,用戶(hù)可以不斷地定義自己適用的新命令來(lái)擴展
TeX 系統的功能。許多人利用
TeX 提供的宏定義功能對
TeX 進(jìn)行了二次開(kāi)發(fā),其中比較著(zhù)名的有美國數學(xué)學(xué)會(huì )推薦的非常適合于數學(xué)家使用的
AMS-TeX 以及適合于一般文章、報告、書(shū)籍的
LaTeX 系統。
TeX 系統是公認的數學(xué)公式排得最好的系統。
美國數學(xué)學(xué)會(huì )(AMS) 鼓勵數學(xué)家們使用
TeX 系統向它的期刊投稿。世界上許多一流的出版社如 Kluwer、Addison-Wesley、牛津大學(xué)出版社等也利用
TeX 系統出版書(shū)籍和期刊。
大部分的
TeX 系統都是免費的。Knuth 教授還公開(kāi)了他的全部源程序。
TeX 系統目前已經(jīng)在數百種計算機系統上得到實(shí)現。
TeX 系統的排版結果 DVI(DeVice Independent)文件與輸出設備無(wú)關(guān)。DVI 文件可以顯示、打印、照排,幾乎可以在所有的輸出設備上輸出。
TeX 排版源文件及結果在各種計算機系統上互相兼容。
七十年代末,
Donald E. Knuth(高德納) 在看到其多卷巨著(zhù)“The Art of Computer Programming”第二卷的校樣時(shí),對由計算機排版的校樣的低質(zhì)量感到無(wú)法忍受。因此決定自己來(lái)開(kāi)發(fā)一個(gè)高質(zhì)量的計算機排版系統,這樣就有了
TeX 。
TeX的名字是由大寫(xiě)的希臘字母“tec”(tau, epsilon,chi)組成。在希臘語(yǔ)中這個(gè)詞的意思是“科技”和“藝術(shù)”,這也解釋了它的發(fā)音。“T”和“E”就像在“technology”中的發(fā)音一樣,而“x”的發(fā)音類(lèi)似于蘇格蘭語(yǔ)單詞“loch”或德語(yǔ)單詞“ach”中的“ch”,也類(lèi)似于西班牙語(yǔ)中的“j”或俄語(yǔ)中的“kh”。
TeX 標志為 TEX ,這三個(gè)字母相靠得很近,而且中間的那個(gè) E 有點(diǎn)兒下沉。但在無(wú)格式文件中,就寫(xiě)為
TeX 。
TeX 的第一版于 1978 年面世。在經(jīng)過(guò)了不斷的改進(jìn)后,1982 年版的
TeX 是一個(gè)十分穩定的版本。從此以后,
TeX 沒(méi)有較大的變動(dòng),只有很少部分的改進(jìn)和錯誤修正?,F在幾乎所有的操作系統平臺下,都有相應的
TeX 軟件,而且用它們排版同一個(gè)文件得到的輸出結果是相同的。
TeX 目前的版本是 3.141592,很接近圓周率π。每有一新的版本,就會(huì )加上一個(gè)π的小數點(diǎn)后的數。所以我們已經(jīng)知道下一版本的
TeX 是 3.1415926,最終將收斂到π。這也代表了
TeX 不斷追求完美的理想。
TeX 的源程序是用 Pascal 寫(xiě)成的,原因是 Knuth 希望
TeX 盡可能方便地移植到其它的操作系統中去。當時(shí) Pascal 是最適合于這一要求的編程語(yǔ)言。這也使得
TeX 現在已經(jīng)在幾乎所有的計算機系統中得到實(shí)現。
TeX 的另一個(gè)重要的特征就是它的輸出是與設備無(wú)關(guān)的。
TeX 的輸出文件稱(chēng)為 DVI 文件,即是“Device Independent”。一旦
TeX 處理了你的文件,你所得到的 DVI 文件就可以被送到任何輸出設備如打印機,屏幕等并且總會(huì )得到相同的結果,而這與這些輸出設備的限制沒(méi)有任何關(guān)系。這說(shuō)明 DVI 文件中所有的元素,從頁(yè)面設置到文本中字符的位置都被固定,不能更改。
TeX 現在已經(jīng)被它的開(kāi)發(fā)者 Knuth 所“冰封”(frozen),新版本的
TeX 只有少許改進(jìn)和錯誤修正。這些變動(dòng)必須保證不會(huì )使得即使是寫(xiě)于 1982 年的
TeX 文檔無(wú)法編譯,
TeX 自帶了測試文件來(lái)確保這一點(diǎn)。如果測試文件文件的輸出結果不同于預定的結果,那么這個(gè)排版系統就不能夠被稱(chēng)為“
TeX”。所以像一些對
TeX 有很大改進(jìn)的軟件,如“Omega”等將不能被稱(chēng)為“
TeX”,盡管它也是基于“
TeX”的。
在設計
TeX 的同時(shí),Knuth 還設計了一個(gè)字體生成程序
MetaFont。
MetaFont 是獨立于
TeX 之外的,但又與
TeX 有著(zhù)非常密切的聯(lián)系。
MetaFont 生成的只是位圖字體,當對字體進(jìn)行縮放時(shí)的效果不佳。對于如何得到像
Type1 字體一樣的輪廓字體,現在還在研究之中。與
TeX 一樣,Knuth 也“冰封”了
MetaFont 。所以
MetaFont 的進(jìn)一步的改進(jìn)和發(fā)展將會(huì )由其他人來(lái)完成,而且名字也將不再是
MetaFont 。
TeX 的未來(lái)
雖然
TeX 在過(guò)去的二十多年中沒(méi)有大的變化,但這并不意味著(zhù)
TeX 是一個(gè)僵化的系統。恰恰相反,
TeX 開(kāi)放的設計使得它能夠很容易的適應新的要求。例如,在沒(méi)有改動(dòng)內核的情形下,
TeX 很容易地實(shí)現了對
PostScript 字體和外部圖形的支持。
TeX 還是第一個(gè)能夠自動(dòng)生成 HTML 的字處理軟件。最近,
TeX 又開(kāi)始增加了在不借助其它工具(如 Adobe Distiller)的條件下生成 PDF 的擴展功能。下面列出的幾個(gè)項目都是正在進(jìn)行中,對
TeX 的功能進(jìn)行了擴展。
PDFTeX
完全兼容標準的
TeX ,但能夠給出 PDF 輸出。它也可以輸出標準的 DVI 。
e-TeX
不僅完全兼容標準的
TeX ,還支持一種“擴展模式”。在“擴展模式”中引入了許多新的特性和增強功能。這些新的特性和增強功能提供了更好的編程工具和對輸出的控制。
Omega
這是一個(gè)幾乎是完全重新寫(xiě)過(guò)的,支持 Unicode 的
TeX 程序。Omega 有很多特征都超出了 Knuth 對
TeX 的原始設想。它采用了與
TeX 不同的方法來(lái)處理字符,使得可以處理非拉丁語(yǔ)系的文本。也支持從右到左,從上到下的排版方式。
NTS
NTS 代表“New Typesetting System”。Knuth 已經(jīng)停止發(fā)展
TeX,并決定任何超越
TeX 的擴展都不能被稱(chēng)為
TeX 。NTS 現在還只是一些對于
TeX 的后續繼承者的設想和概念的集合,還不是一個(gè)實(shí)際上的系統。自然,NTS 會(huì )繼承
TeX 的絕大部分讓我們熱愛(ài)的特征,并且在很多方面對其加以發(fā)展。NTS 可能最終會(huì )取代
TeX 或 e-
TeX。
MLTeX
這個(gè)
TeX 的擴展引入了命令 \charsubdef,使得可以更為簡(jiǎn)單方便的使用 8 bit 字符。不過(guò),與 e-
TeX 相比,這只是一個(gè)微小的改進(jìn)。
TeX 的優(yōu)點(diǎn)
在一個(gè)充斥著(zhù)“所見(jiàn)即所得”(WYSIWSG)桌面出版軟件的情況下來(lái)使用
TeX 確是有點(diǎn)令人奇怪。但是,在某些情形下,你會(huì )感到
TeX 是最好的,甚至是唯一適合的系統。
首先我們來(lái)看一下
TeX 的優(yōu)勢所在:
- 高質(zhì)量的輸出 TeX 遵循傳統的排版規則,以排版的質(zhì)量為最重要的目標。如果你把 TeX 的輸出結果和用其它的排版軟件排版相同的文本所得到的結果加以比較,你就會(huì )發(fā)現其中的區別。
- 超常的穩定性 自從 TeX 出現以來(lái),只有一些微小的改動(dòng)。也就是說(shuō),十幾年前的 TeX 文件用現在的 TeX 系統排版得到的結果與十幾年前得到的結果是一樣的。穩定性還體現在 TeX 系統極少會(huì )崩潰,可以處理任意大小的文件,即使你的計算機的內存很少,TeX 也可自如的工作。
- TeX 是可編程的 TeX 是一種宏命令編程語(yǔ)言。你可以用很少的命令來(lái)完成非常復雜的工作。如果需要的話(huà),你也可以重新定義 TeX 的所有命令來(lái)得到特殊的效果。
- 高度的靈活性 TeX 自從出現以來(lái)其內核只有微小的改動(dòng)。但是由于其內核的設計方式,世界上的 TeX 使用者可以讓 TeX 做幾乎任何工作。你可以用 TeX 來(lái)排版英文文本,也可以排版德文,俄文,中文等多種語(yǔ)言。你還可以用 TeX 來(lái)排版樂(lè )譜,象棋,圍棋棋譜等等。
- 簡(jiǎn)單方便 TeX 文檔是 ASCII 碼的文本文件。因此,即使你手邊沒(méi)有 TeX 系統,你也可以看懂絕大部分的內容。TeX 文件的這種特點(diǎn)使得它占用很少的存儲空間,也可以很方便的用 email 來(lái)傳輸。
- 良好的通用性 目前為止,TeX 幾乎在所有的計算機操作系統平臺上得到實(shí)現。如:Atari,Apple,Macintosh,Unix,VMS,MS-DOS,MS-Windows 和 OS/2 等等。TeX 的源文件可在不同的平臺之間自由的交換,而得到的輸出是完全相同的。
- 低廉的價(jià)格 TeX 是免費軟件,它的源程序也是免費的。你可能僅僅需要支付郵費,甚至于一分不花地得到適合你的 TeX 系統。世界上有很多非常好的 TeX 免費軟件如:teTeX,MikTeX,fpTeX 等等。同時(shí)也有一些具有各自特點(diǎn)(如或多或少的所見(jiàn)即所得特性的)和提供專(zhuān)家級幫助系統的商業(yè)版本。
- 超級技術(shù)支持 由于 TeX 并不是被某個(gè)公司所壟斷開(kāi)發(fā),所以世界各地的使用者設計了統一的技術(shù)支持的方式。這通常是通過(guò)因特網(wǎng)以 email, WWW, Usenet 或 Ftp 的方式來(lái)提供,有時(shí)也可能通過(guò)電話(huà)或傳真的方式。絕大多數情況下這些技術(shù)支持都是免費的,這也是 TeX 的精神。
- TeX 是一種樂(lè )趣 使用 TeX 不僅僅是一種工作手段,也是一種樂(lè )趣。它有挑戰,也有榮譽(yù)。很多人在熟悉了 TeX 之后都開(kāi)始把使用 TeX 作為一種愛(ài)好,而不是一件枯燥無(wú)味的勞動(dòng)。
在展示了
TeX 的優(yōu)秀之處后,也得承認
TeX 也有一些不足的地方:
- TeX 不是在一個(gè)下午就能完全學(xué)會(huì )的,除非你是一個(gè)真正的天才。當你開(kāi)始學(xué)習并使用它的時(shí)候,你將會(huì )不停的去翻看 TeX 的參考手冊來(lái)尋找一個(gè) TeX 命令。你也會(huì )發(fā)現 TeX 常常不理會(huì )你鍵入的命令,還給出一個(gè)讓你感到迷惑的錯誤訊息。這一切都說(shuō)明了掌握 TeX 需要一個(gè)比較長(cháng)而且艱難的學(xué)習過(guò)程。TeX 的一些擴展如 LaTeX 則要相對簡(jiǎn)單的多,使用起來(lái)也比 TeX 方便,一個(gè)新手完全可以在一個(gè)下午或者更短的時(shí)間內學(xué)會(huì )開(kāi)始使用 LaTeX 。
- 當發(fā)生錯誤的時(shí)候,TeX 會(huì )給出一些信息來(lái)提示你。但很多情況下并不足以是你迅速準確的找到錯誤之所在。尤其對剛剛開(kāi)始學(xué)習的新手來(lái)說(shuō)更是如此。
- 像 TeX 這種宏語(yǔ)言不同于其它的計算機語(yǔ)言,如 C,Pascal 等,大多數人并不了解。因此,當你想要寫(xiě)自己的宏命令時(shí),你需要對 TeX 有比較深入的了解才能寫(xiě)出牢固可靠的宏命令。
- TeX 不是所見(jiàn)即所得的。盡管市場(chǎng)上有些近似于所見(jiàn)即所得的商業(yè)版本,但即使與最普通的字處理軟件比,也還是有不小的差距。