TeX[文本排版系統]

TeX[文本排版系統]

TeX是由著名的計算機科學家Donald E. Knuth(高德納)發明的排版系統,利用TeX可以很容易地生成高質量的dvi檔案,列印輸出。利用dvips,dvipdfmx,pdfLaTeX等程式生成pdf,ps檔案,LaTeX2html生成html檔案。 它在學術界十分流行,特別是數學、物理學、統計學與計算機科學界。TeX被普遍認為是一個很好的 排版工具,特別是在處理複雜的數學公式時。利用諸如是LaTeX等終端軟體,TeX就能夠排版出精美的文本。通過CTAN上的宏包可以擴展其功能,可以作幻燈片,定義模板。中文支持可以由CCT、CJK、ctex等來完成。

簡介

TeX[文本排版系統] TeX[文本排版系統]

正式名稱】:

純文本名稱】:TeX

中文釋義】:基於宏的流行的文本格式化程式 (它是包括LaTeX和teTeX在內的其它此類格式化程式的基礎)

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[文本排版系統] TeX[文本排版系統]

在所有的可以排版科技著作的計算機格式化程式中,要屬 Stanford大學Donald E. Knuth在1977年5月開始設計的TeX程式功能最強了. 其名字來源於希臘字母tec。正是由於這個原因, 其最後一個字母X的發音並不是/ks/,而是/x/,類似於蘇格蘭語單詞loch或者德語單詞ach中的ch,西班牙語中的j,俄語中的kh,漢語國語中的“喝”的聲母。 這個名字強調指出了數學文本的印刷是該程式功能中不可分割的一部分。注意真正的TeX標誌為,這三個字母相靠得很近,而且中間的那個Ε有點兒下沉。但在無格式的純文本檔案中,就寫為TeX。

除此以外,Knuth還設計了另一個軟體METAFONT, 以生成字元的字型。在標準的TeX軟體包中有75種不同設計 尺寸的字型,而且每種字型有八種不同的放縮比例。所用這些字型都是用METAFONT 程式生成的。為了滿足其它套用的需要,還設計了其它字元的 字型,如古斯拉夫語或日語字母的字型,有了這體檔案, 也可以把相應文本以書籍質量排版出來。

性能特點

TeX 程式

最基本的TeX程式只是由一些很原始的命令組成, 它們可以完成簡單的排版操作和程式設計功能。 然而,TeX也允許用這些原始命令定義一些更複雜的高級命令。這樣就可以利用低級的塊結構,形成一個用戶界面相當友好的環境。

TeX[文本排版系統] TeX[文本排版系統]

在處理器運行期間,該程式首先讀取所謂的格式檔案, 其中包含各種以原始語言寫成的高級命令,也包含分割單詞的連字號安排模式。接著處理程式就處理源檔案,其中包含要處理的真正文本,以及在格式檔案中已定義了的格式命令。創建新格式是一件需要由具有豐富知識程式設計師來做的事情。 把定義寫到一個源檔案中,這個檔案接著被一個名叫iniTeX的特殊版本的TeX程式處理。它採用一種緊湊的方式存貯這些新格式,這樣就可以被通常TeX程式很快地讀取。

TeX的穩定性

TeX是非常穩定的程式,高德納懸賞獎勵任何能夠在TeX中發現程式漏洞(bug)的人。每一個漏洞的獎勵金額從1美分開始,並每年翻倍,直到327.68美元封頂。然而高德納從未因此而損失大筆金錢,因為TeX中的漏洞少之又少,而真正發現漏洞的人在獲得支票後,寧願將其裱起來留作紀念也不願拿去兌現!

到目前為止,關於TeX的最後一個bug是被高德納自己發現的。

幾種TeX的格式

TeX[文本排版系統] TeX[文本排版系統]

◆Plain

Knuth設計了一個名叫Plain TeX的基本格式, 以與低層次的TeX互應。這種格式是用TeX處理文本時 相當基本的部分,以致於我們有時都分不清到底哪條指令是真正的處理程式TeX的,哪條是這個特殊格式的。 大多數聲稱只使用TeX的人,實際上指的是只用Plain TeX。

Plain TeX也是其它格式的基礎,這些格式進一步 加深了某些人認為TeX和Plain TeX是同一件事的印象。

TeX[文本排版系統] TeX[文本排版系統]

Plain TeX的重點還只是在於如何排版的層次上, 而不是從一位作者的觀點出發。 當然對它的深層功能的進一步發掘,需要相當豐富的編程技巧。因此它的套用就需要高級排版和程式設計人員。

正是由此這種原因,美國計算機學家Leslie Lamport 在二十世紀八十年代初期開發了LaTeX格式,這種格式提供了一組生成複雜文檔所需的更高級命令。 利用這種格式,即使使用者沒有排版和程式設計的知識也可以充分發揮由TeX 所提供的強大功能,能在幾天, 甚至幾小時內生成很多具有書籍質量的印刷品。 對於生成複雜表格和數學公式,這一點表現得尤為突出。

LaTeX相對於其基礎Plain TeX而言,更像一個包裝語言。 它可以在作者根本不知道所以然的條件下,自動給出標題,章節,表格目錄,交叉索引,公式編號,文獻引用,浮動圖表。版面布局信息包含在類檔案中, 這些類檔案並不是位於源檔案中的。這些布局可以改動,也可以直接採用。

LaTeX是在二十世紀八十年代出現的,就像其它軟體那樣, 它也定期地進行更新和修訂。經過很多年後,版本號 已固定為2.09,而修訂只是用日期來區分。最近的一次大修訂發生在1991年12月1日,其後直到1992年3月25日為止,還有幾次小的修訂。

TeX[文本排版系統] TeX[文本排版系統]

TeX[文本排版系統] TeX[文本排版系統]

由於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進行了重新實現。

TeX的現狀

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常常不理會你鍵入的命令,還給出一個讓你感到迷惑的錯誤訊息。這一切都說明了掌握TeX需要一個比較長而且艱難的學習過程。TeX的一些擴展如LaTeX則要相對簡單的多,使用起來也比TeX方便,一個新手完全可以在一個下午或者更短的時間內學會開始使用LaTeX。

當發生錯誤的時候,TeX會給出一些信息來提示你。但很多情況下並不足以使你迅速準確的找到錯誤之所在。尤其對剛剛開始學習的新手來說更是如此。

像TeX這種宏語言不同於其它的計算機語言,如C,Pascal 等,大多數人並不了解。因此,當你想要寫自己的宏命令時,你需要對TeX有比較深入的了解才能寫出牢固可靠的宏命令。

TeX不是所見即所得的。儘管市場上有些近似於所見即所得的商業版本,但即使與最普通的字處理軟體比,也還是有不小的差距。

相關詞條

相關搜尋

熱門詞條

聯絡我們