寫作動機
筆者利用LaTeX進行排版的頻率并不高,每次撿起來都要重新在網上辛苦查閱相關資料;
另外,若是能利用本次機會將TeX排版系統的歷史以及原理快速捋一遍則是極好的,
本文適合的讀者特點
> 有些許LaTeX寫作經歷
> 想弄清楚各種xxxTeX之間關系
什么是TeX?
\(\TeX\)是高納德(Donald Knuth)于1978年開發的排版系統,核心由Pascal語言撰寫,包含大量排版命令,由于其過于穩定,至今其核心基本沒受到什么大改動,均是修修補補,
既然TeX是一個系統,就不能單純說它是“一種編程語言“或”一個程式“,實際上它由排版語言、編譯器(引擎)以及一些相關可執行程式構成,用戶撰寫.tex源檔案,TeX編譯器將其編譯為二進制機器碼,并存盤在.dvi檔案中,可以將其對照為C語言和C語言編譯器之間的關系,
DVI,Device Independent, 譯為設備無關,TeX真正生成的其實是.dvi檔案(而不是PDF),這種檔案格式是由一個叫David R. Fuchs的人定義的,被高納德順手開發出來了,這種檔案精確描述了所有頁面元素的樣式以及各自坐標,并且絕對固定并無法被更改,所以任何讀取它的輸出設備(顯示幕、列印機等)顯示出來的效果一定是一模一樣的!
TeX格式檔案
TeX支持宏,所以開發者可將若干底層命令組合為一個新的宏,實作高一級抽象的功能,方便用戶使用,
對于TeX系統,其在編譯.tex源檔案前,會預載一個格式檔案,其中包含各種提前定義好的宏,以被用戶在源檔案中呼叫,緊接著對源檔案進行編譯,所以你可以將格式檔案理解為宏的集合,
常見的格式檔案
Plain TeX
由高納德本人設計,僅包含了一些很基礎的宏來處理簡單的排版,現在很少人用,
LaTeX
\(\LaTeX\)是由美國人Leslie Lamport于80年代設計的格式,屬于Plain TeX的套娃,實作了很多強大的宏,
LaTeX2e
于1994年發布,是LaTeX最新的一個大版本,也是如今使用最廣泛的格式,一直更新至今,實際上我們如今說的“latex”便是指2e版本,
AMSTeX / AMSLaTeX
由美國數學協會設計,同樣屬于Plain TeX套娃,實作了很多高級數學排版渲染功能,
易于理解的角度
我將TeX基礎命令類比于匯編語言,Plain TeX可類比于C語言,則LaTeX類比為C++,所以實際上TeX編譯器最侄訓將.tex源檔案中的各種高級宏一個不漏地解釋拆解為一大堆TeX基礎指令,
由TeX衍生的排版引擎
> 注:從這里開始,建議將“引擎”理解為實際的可執行程式
高納德將TeX的排版引擎設計得如此開放且易擴展,以至于出現了一些由全球社區在此基礎上撰寫的新排版引擎,它們雖然拓展了若干高級特性,但仍嚴格兼容TeX引擎本身的嚴謹性,
需要區分的是,如LaTeX這樣的格式檔案僅是對原始TeX命令的組合,本質上其拓展范疇仍在TeX系統內;而下文提到的物件則是針對TeX引擎本身進行了改動、拓展甚至重寫,
pdfTeX
由TUG組織維護,在國外比較流行,主要特性是默認最終產物為pdf檔案,
> 注:如果你于終端鍵入"latex"命令,實際上呼叫的是pdfTeX引擎,只不過是預載了LaTeX格式而已

XeTeX
由Jonathan Kew開發,在TeX基礎上增加了對unicode的支持,同時增加若干高級字體渲染技術、高級數學排版功能,其預載的為Plain TeX格式,
XeTeX生成的目標檔案為.xdv(extend DVI),其可由相關程式轉換為PDF檔案,
> 注:所謂的"XeLaTeX"并不是一個獨立的排版引擎,終端命令"xelatex"的效果為呼叫XeTeX,預載LaTeX格式

LuaTeX
由另外幾個科學家于pdfTeX的基礎上開發而來,主要特性是內置Lua腳本引擎,理論上能利用Lua獲得更靈活的擴展性,但其流行性及性能均不如XeTeX,所謂的"LuaLaTeX"同上,
TeX系統的發行版
我將原始的TeX系統類比于Linus早期開發的Linux內核,各非盈利 / 盈利組織由此開發出不同的Linux發行版本以增添一些特色功能,如Ubuntu、CentOS、SUSE、REDHAT等等,但Linux是作業系統,接下來介紹的各主流TeX系統發行版本準確來說是由一系列可執行檔案、格式檔案、宏包、開源字體包裝起來的工具鏈ToolChain,
TeXLive
由國際TeX用戶組織TUG發行,是最流行的版本,開源且跨平臺,其內置上述提到的所有排版引擎,以及最新的LaTeX2e格式,
MiKTeX
是Microsoft Windows平臺上最出色的發行版本,其附帶安裝一個TeX編輯器,
MacTeX
是基于TeXLive修改而重發行的版本,由TUG的子團隊開發,其相比于TeXLive增加了一些針對Mac特性的工具,以及附帶了TeXShop編輯器,
結語
了解了TeX系統的簡單歷史后,你可以著手為你的電腦安裝合適的TeX發行版本,選擇一個你喜歡的文本編輯器(我推薦sublime text或者vs code)以及適合你的排版引擎(一般用戶推薦XeTeX搭配LaTeX格式)開始寫作,
有關于LaTeX入門教程,我推薦CTeX.org維護的一份LaTeX中文入門教程,條理清晰易懂:于此github頁面的release板塊中可找到其pdf,
另外對于LaTeX2e的官方檔案,我會對其進行翻譯,原pdf網址LATEX2e for authors,
點擊此處進入LaTeX2e for authors中文版翻譯,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/386473.html
標籤:其他
