TeX 家族(TeX, pdfTeX, XeTeX, LuaTeX, LaTeX, pdfLaTeX, XeLaTeX …)

TeX 家族
帶有 TeX 的詞,僅僅是本文就已經提到了 TeX, LaTeX, XeLaTeX。一般中國學生面對不瞭解意思的一羣形近單詞,都會有一種「本能的恐懼」(笑~)。
所以,「大神們」在爲新手介紹 TeX 的時候,若是互相爭論 「XXTeX 比 YYTeX 好」或者是「XXTeX 的 YYTeX 如何如何」,每每會蹦出下面這些帶有 TeX 的詞彙:
TeX, pdfTeX, XeTeX, LuaTeX, LaTeX, pdfLaTeX, XeLaTeX …
事實上,這部分的內容太過複雜,我本身的瞭解也實在有限。因此下面這部分的內容也只能是對我瞭解到的知識的一個歸納,甚至可能有些許謬誤。因此你們只須要將這部分的內容當作是一個參考就能夠了。
 
TeX - LaTeX
 
TeX 是高德納(Donald Ervin Knuth,1938年1月10日 –)教授憤世嫉俗作出來的排版引擎,同時也是該引擎使用的標記語言(Markup Lang)的名稱。這裏所謂的引擎,是指可以實現斷行、分頁等操做的程序(請注意這並非定義);這裏的標記語言,是指一種將控制命令和文本結合起來的格式,它的主體是其中的文本而控制命令則實現一些特殊效果(一樣請注意這並非定義)。
而 LaTeX 則是 L. Lamport (1941年2月7日 – ) 教授開發的基於 TeX 的排版系統。實際上 LaTeX 利用 TeX 的控制命令,定義了許多新的控制命令並封裝成一個可執行文件。這個可執行文件會去解釋 LaTeX 新定義的命令成爲 TeX 的控制命令,並最終交由 TeX 引擎進行排版。
實際上,LaTeX 是基於一個叫作 plain TeX 的格式的。plain TeX 是高德納教授爲了方便用戶,本身基於原始的 TeX 定義的格式,但實際上 plain TeX 的命令仍然十分晦澀。至於原始的 TeX 直接使用的人就更少了,所以 plain TeX 格式逐漸就成爲了 TeX 格式的同義詞,儘管他們事實上是不一樣的。
所以在 TeX - LaTeX 組合中,最終進行斷行、分頁等操做的,是 TeX 引擎。LaTeX 其實是一個工具,它將用戶按照它的格式編寫的文檔解釋成 TeX 引擎能理解的形式並交付給 TeX 引擎處理,再將最終結果返回給用戶。

pdfTeX - pdfLaTeX
 
TeX 系統生成的文件是 dvi 格式,雖然能夠用其餘程序將其轉換爲例如 pdf 等更爲常見的格式,可是畢竟不方便。dvi 格式是爲了排版而產生的,它自己並不支持所謂的「交叉引用」,pdfTeX 直接輸出 pdf 格式的文檔,這也是 pdfTeX 相對 TeX 進步(易用性方面)的地方。爲了解決這個問題,Hàn Thế Thành 博士在他的博士論文中提出了 pdfTeX 這個對 TeX 引擎的擴展。兩者最主要的差異就是 pdfTeX 直接輸出 pdf 格式文檔,而 TeX 引擎則輸出 dvi 格式的文檔。
pdfLaTeX 這個程序的主要工做依舊是將 LaTeX 格式的文檔進行解釋,不過這次是將解釋以後的結果交付給 pdfTeX 引擎處理。
 
XeTeX - XeLaTeX
 
高德納教授在實現 TeX 的當初並無考慮到中日韓等字符的處理,而只支持 ASCII 字符。這並非說中日韓字符就沒法使用 TeX 引擎排版了,事實上 TeX 將每一個字符用一個框包括起來(這被稱爲盒子)而後將一個個的盒子按照必定規則排列起來,於是 TeX 的算法理論上適用於任何字符。ASCII 字符簡單理解,就是在半角模式下你的鍵盤能直接輸出的字符。在 XeTeX 出現以前,爲了能讓 TeX 系統排版中文,國人曾使用了 天元、CCT、CJK 等手段處理中文。其中 天元和CCT 如今已經基本不用,CJK 由於使用時間長且效果相對較好,如今還有人使用。不一樣於 CJK 等方式使用 TeX 和 pdfTeX 這兩個不直接支持 Unicode 字符的引擎, XeTeX 引擎直接支持 Unicode 字符。也就是說如今不使用 CJK 也能排版中日韓文的文檔了,而且這種方式要比以前的方式更加優秀。
XeLaTeX 和 XeTeX 的關係與 pdfLaTeX 和 pdfTeX 的關係相似,XeLaTex負責對LaTex文檔進行解釋,最終由XeTeX引擎負責處理。使用 XeTeX 引擎須要使用 UTF-8 編碼。
 
CTeX - MiKTeX - TeX Live
以前介紹了 TeX, LaTeX, pdfTeX, pdfLaTeX, XeTeX, XeLaTeX, LuaTeX 等,他們都是 TeX 家族的一部分。可是做爲一個可以使用的 TeX 系統,僅僅有他們仍是不夠的。CTeX, MiKTeX, TeX Live 都是被稱爲「發行」的軟件合集。他們包括了上述各類引擎的可執行程序,以及一些文檔類、模板、字體文件、輔助程序等等。其中 CTeX 是創建在 MiKTeX 的基礎之上的。
相關文章
相關標籤/搜索