PDFLaTex-XeLatex-PDFTex-XeTex等區別

前言

在接觸TeX兩年之後,依然對於TeX的一些術語之間的關係表示不解。比如LaTeX、pdfLaTeX、XeLaTeX、TeX Live、CTeX等等。這些術語究竟代表什麼?它們之間是怎樣的關係?

TeX

首先是一種宏語言,同時其也是一種排版引擎。基本的TeX系統只有300多個元命令 (primitive) ,十分精悍,但是很難讀懂。

引擎

引擎是真正幹活的程序。引擎的基本功能就是解釋TeX語法,把字排成行,把行排成頁,涉及到斷字、斷行、分頁等算法。最原始的引擎是TeX。

  • TeX:1978年由Donald Erwin Knuth開發。是後來大部分TeX相關的基礎。其生成dvi文件,然後經由其他程序轉換爲pdf文件。

  • pdfTeX:Tex語言的又一個實現,將TeX代碼直接編譯成PDF文件。

  • XeTeX:TeX 語言的新的實現,支持 Unicode 編碼和直接訪問操作系統字體。

  • LuaTeX:TeX 語言的一個完整的有擴展的實現。LuaTeX支持Unicode、系統字體和內嵌語言擴展,能直接輸出PDF格式文件,也可以仍然輸出 DVI 格式。

格式

TeX語言本身只有300個命令,晦澀難懂,只適合非正常的人類。一個簡單的符號可能就需要多個命令來實現,可以將這些最基本的命令封裝起來做個簡寫(宏)以實現特殊的目的。一堆簡寫的合集就構成了格式。格式可以與不同的引擎相結合。

  • Plain TeX:由Don Knuth提供的最小的宏集合。

  • LaTeX:更易於使用的宏集,最常見的一種格式。

  • ConTeXt:另一種常見的格式。

宏包

一些輔助文件,在LaTeX中叫做packages,在ConTeXt中叫做modules。在LaTeX格式中,導言區的\usepackage的作用就是引入各種宏包。宏包其實也是一堆基本的TeX命令的集合,只是其不夠全,所以稱之爲宏包而不是格式。

發行版

一個完整的TeX需要最基本的TeX引擎、格式支持、各種輔助宏包、一些轉換程序、GUI、編輯器、文檔查看器等等。通過選擇不同的組合就構成了不同的發行版。

  • TeX Live:支持Linux,Windows,Mac OS

  • MiKTeX:只支持Windows

  • CTeX:CTeX基於MiKTeX,並加入了中文的支持,只支持Windows。同時CTEX是一個網站,ctex是可以很好支持中文的宏包。

相關命令

在介紹了引擎以及格式之後,二者不同的搭配方式需要調用不同的命令:

表1: Tex相關命令比較

小結

目前最常用的引擎是pdfTeX和XeTeX,其中XeTeX可以很好的支持中文,因而受到國人的青睞。格式方面LaTeX當仁不讓。所以目前比較流行的編譯命令是xelatex,同時在中文支持方面,幾年前是CJK宏包,現在是ctex宏包。

參考文章

各種Tex解釋

TeX:一種宏語言。

Plain Tex: Tex中的一個最基本的宏集合與TeX的基礎語言構成的一種格式。

LaTex: Tex中的一個宏集合,構成一種與 Plain TeX 不一樣的格式。

Tex程序:把Tex語言轉換爲排版的程序,也叫Tex。爲區別,稱這個 TeX 程序叫Knuth TeX。

tex命令:Tex程序中的編譯命令。tex命令默認用Plain TeX格式進行排版。也就是說tex命令後面默認跟的tex文件應該是用Plain Tex格式寫的。

latex命令:tex命令加上某一個選項使用,就會用LaTeX 格式進行排版,也就是說此時後面跟的tex文件應該是用LaTex格式寫的。爲方便,就把tex 命令與對應編譯選項合成爲一個命令,叫latex命令。

ε-TeX 程序:Knuth TeX程序的一個擴展,也是一個程序,一般寫成 eTeX。增加了少量的幾個命令,但一般來說是與Knuth TeX程序沒有太多區別的。

PDFTeX程序:Tex語言的一個實現,也就是把Tex語言轉換爲排版的一個程序。它會把TeX 語言寫的代碼直接編譯成 PDF文件。

PDFLaTeX命令:PDFTeX程序中的命令,用來編譯用LaTeX格式寫的tex文件。

XeTeX程序:TeX語言的新的實現,即把Tex語言轉換爲排版的一個新程序。支持Unicode編碼和直接訪問操作系統字體。

XeLaTeX命令:XeTeX程序中的命令,用來編譯用LaTeX格式寫的tex文件。

實現:在文中的意思就是指“程序”的意思。如文中:eTeX程序和 Knuth TeX 都是TeX語言的一個實現(也就是說,eTeX 程序和 Knuth TeX 都是把TeX語言轉換爲排版的程序。程序作用於tex文本文件,把tex文件編譯成dvi文件)。

Reference 1

Reference 2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章