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 的基礎之上的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM