技術 > tex
目錄
No. 1
  【名稱】:tex
  【中文釋義】:基於宏的流行的文本格式化程序 (它是包括latex和tetex在內的其它此類格式化程序的基礎)
  【概述】
  電子排版係統的出現給印刷出版業帶來了一場革命,利用電子計算機及各種輔助設備,可以完成從文稿、圖表的錄入、編輯、修改、組版,直至得到各種不同用途、不同質量的輸出結果。利用電子排版係統,可以減輕勞動強度,縮短出版周期。
  目前世界上有許多電子排版係統。這些係統各有特點,也各有自己的適用範圍。tex 就是一種優秀的電子排版係統。
  tex是由著名的計算機科學家donald e. knuth(高德納)發明的排版係統,利用tex很一很容易的生成高質量的dvi文件,打印輸出。利用dvips,dvipdfmx,pdflatex等程序成成pdf,ps,文件,latexhtml生成html文件。
  它在學術界十分流行,特別是數學、物理學和計算機科學界。tex被普遍認為是一個很好的 排版工具,特別是在處理復雜的數學公式時。利用諸如是latex等終端軟件,tex就能夠排版 出精美的文本。通過ctan上的宏包可以擴展其功能,可以作幻燈片,定義模板。中文支持可以由cct,cjk來完成。
  【什麽是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,而類似於蘇格蘭語單詞loch或者 德語單詞ach中的ch,也類似於西班牙語中的j或俄語中的kh。 這個名字強調指出了數學文本的印刷是該程序功能中不可分割的 一部分。註意真正的tex標志為tex,這三個字母相靠得很近,而且中間的那個e有點兒下沉。但在無格式文件中,就寫為tex
  除此以外,knuth還設計了另一個軟件 metafont, 以生成字符的字體。在標準的tex軟件包中有75種不同設計 尺寸的字體,而且每種字體有八種不同的放縮比例。所用這些 字體都是用metafont 程序生成的。為了滿足其它應用的需要,還設計了其它字符的 字體,如古斯拉夫語或日語字母的字體,有了這體文件, 也可以把相應文本以書籍質量排版出來。
  【tex 程序】
  最基本的tex程序衹是由一些很原始的命令組成, 它們可以完成簡單的排版操作和程序設計功能。 然而,tex也允許用這些原始命令定義一些更復雜的高級命令。這樣就可以利用低級的塊結構,形成一個用戶界面相當友好的環境。
  在處理器運行期間,該程序首先讀取所謂的格式文件, 其中包含各種以原始語言寫成的高級命令,也包含分割單詞的連字號安排模式。接着處理程序就處理源文件,其中包含要處理的真正文本,以及在格式文件中已定義了的格式命令。
  創建新格式是一件需要由具有豐富知識程序員來做的事情。 把定義寫到一個源文件中,這個文件接着被一個名叫 initex的特殊版本的tex程序處理。它采用一種緊湊的方式存貯這些新格式,這樣就可以被通常tex程序很快地讀取。
  【tex的穩定性】
  tex是非常穩定的程序,高德納懸賞奬勵任何能夠在tex中發現程序漏洞(bug)的人。每一個漏洞的奬勵金額從1美分開始,並每年翻倍,直到目前的327.68美元封頂。然而高德納從未因此而損失大筆金錢,因為tex中的漏洞少之又少,而真正發現漏洞的人在獲得支票後,寧願將其裱起來留作紀念也不願拿去兌現!
  到目前為止,關於tex的最後一個bug是被高德納自己發現的。
  【幾種tex的格式 】
  ◆plain tex
  knuth設計了一個名叫plain tex的基本格式, 以與低層次的tex互應。這種格式是用tex處理文本時 相當基本的部分,以致於我們有時都分不清到底哪條指令是真正的處理程序tex的,哪條是這個特殊格式的。 大多數聲稱衹使用tex的人,實際上指的是衹用plain tex
  plain tex也是其它格式的基礎,這些格式進一步 加深了某些人認為tex和plain tex是同一件事的印象。
  ◆latex
  plain tex的重點還衹是在於如何排版的層次上, 而不是從一位作者的觀點出發。 當然對它的深層功能的進一步發掘,需要相當豐富的編程技巧。因此它的應用就需要高級排版和程序設計人員。
  正是由此這種原因,美國計算機學家leslie lamport 在二十世紀八十年代初期開發了latex格式,這種 格式提供了一組生成復雜文檔所需的更高級命令。 利用這種格式,即使使用者沒有排版和程序設計的知識也可以充分發揮由tex 所提供的強大功能,能在幾天, 甚至幾小時內生成很多具有書籍質量的印刷品。 對於生成復雜表格和數學公式,這一點表現得尤為突出。
  latex相對於其基礎plain tex而言,更像一個包裝語言。 它可以在作者根本不知道所以然的條件下,自動給出標題,章節,表格目錄,交叉索引,公式編號,文獻引用,浮動圖表。版面佈局信息包含在類文件中, 這些類文件並不是位於源文件中的。這些佈局可以改動,也可以直接采用。
  latex是在十九世紀八十年代出現的,就像其它軟件那樣, 它也定期地進行更新和修訂。經過很多年後,到現在版本號 已固定為2.09,而修訂衹是用日期來區分。最近的一次大修訂發生在1991年12月1日,其後直到1992年3月25日為止,還有幾次小的修訂。
  ◆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 進行了重新實現。
  【目前的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命令。你也會發現tex常常不理會你鍵入的命令,還給出一個讓你感到迷惑的錯誤訊息。這一切都說明了掌握tex需要一個比較長而且艱難的學習過程。tex的一些擴展如latex則要相對簡單的多,使用起來也比tex方便,一個新手完全可以在一個下午或者更短的時間內學會開始使用latex
  當發生錯誤的時候,tex會給出一些信息來提示你。但很多情況下並不足以是你迅速準確的找到錯誤之所在。尤其對剛剛開始學習的新手來說更是如此。
  像tex這種宏語言不同於其它的計算機語言,如 c,pascal 等,大多數人並不瞭解。因此,當你想要寫自己的宏命令時,你需要對tex有比較深入的瞭解才能寫出牢固可靠的宏命令。
  tex不是所見即所得的。儘管市場上有些近似於所見即所得的商業版本,但即使與最普通的字處理軟件比,也還是有不小的差距。
  tex世界上最大集裝箱租賃上有着雄厚的實力全球的船公司大都租用它的箱子
相關詞
算法和程序設計METAFONT計算機程序設計藝術蘇州認證Oeko