跳至內容

TeX

0% developed
來自華夏公益教科書


TeX
TeX

TeX 是一種用於排版文件的語言,尤其是那些包含數學的文件。它同時具有程式設計和標記功能。在本手冊中,我們將描述“原始 TeX”—— 宏語言 plain TeXLaTeXConTeXt 等的基本引擎。如果您不熟悉 TeX,那麼這可能不是您想閱讀的內容:您可能正在尋找 LaTeX,它是 TeX 的一個宏包,可以更輕鬆地生成標準文件。

TeX 是 唐納德·克努特 的宏語言,用於排版文件。原則上,TeX 可以用於任何型別的程式(它是一個圖靈完備程式語言)。

其他來源

[編輯 | 編輯原始碼]

學習 TeX 語言的權威來源,包括編寫文件和程式設計,是唐納德·克努特編寫的TeX 手冊。還有一個全面的程式設計師參考手冊,叫做TeX by topic,作者慷慨地將其免費提供在他的網站上,以及 TeX for the Impatient

TeX 的結構

[編輯 | 編輯原始碼]

我們描述 TeX 的基本結構:暫存器、引數和其他影響 TeX 原始檔處理的資源。

基本定義

[編輯 | 編輯原始碼]
壞度
排版文字行的間距質量的衡量標準。
基線
hbox
溢位錯誤
TeX 無法生成不溢位盒子的結果,並且已經放棄。通常會出現連字或對齊問題:將行上的最後一個詞移到下一行將使行中的空格比當前限制更寬;將詞保留在行上將使空格比當前限制更窄,因此詞被保留在行上,但詞之間的空格最小,這會導致行溢位。
不足錯誤
TeX 無法生成適當填充盒子的結果,並且已經放棄。TeX 無法將行拉伸到足夠寬以適合,而不會使間距大於當前允許的最大值。壞度(0-10,000)表示嚴重程度。

盒子的概念是 TeX 的基礎。盒子代表組成排版頁面的內容。例如,字母、文字行、段落、數學公式及其組成符號在概念上都只是 TeX 貼上在一起以構建頁面的盒子,頁面本身也是一個盒子。盒子通常由更小的盒子組成。

每個盒子都有許多屬性,TeX 使用這些屬性使用各種演算法將盒子貼上在一起。這些是

基線
這是一條垂直分割盒子的水平線。
高度
從基線到盒子頂部的距離。
深度
從基線到盒子底部的距離。
寬度
盒子的水平長度。
參考點
基線與盒子左側相交的點。

例如,字母“a”放置在一個盒子裡,使其直接坐在基線上;而像“p”、“g”或“j”這樣的字母則延伸到基線以下。當 TeX 正在構建一行普通文字時,所有基線都是對齊的,因此一行字元的定位方式與人們預期的一致。字型設計師決定如何將每個字形放置在其各自的盒子裡。

雖然盒子代表頁面的內容,但膠水代表盒子之間填充的空白,並且當 TeX 正在構建頁面時,這種膠水可以擴充套件或收縮以允許內容最佳定位。這種膠水最終被“設定”,之後它就不能再調整——它只是固定的空白。

存在許多型別的預定義膠水,以滿足排版中可能出現的不同需求。

在處理原始檔的每個階段,TeX 都處於以下模式之一

TeX 如何解釋原始檔取決於當前模式。

數學字型

[編輯 | 編輯原始碼]

TeX 演算法

[編輯 | 編輯原始碼]

詞法分析

[編輯 | 編輯原始碼]

宏展開

[編輯 | 編輯原始碼]

設定間距

[編輯 | 編輯原始碼]

行構造

[編輯 | 編輯原始碼]

頁面構造

[編輯 | 編輯原始碼]

數學公式的構造

[編輯 | 編輯原始碼]

表格的構造

[編輯 | 編輯原始碼]

連字元

[編輯 | 編輯原始碼]

TeX 關鍵字

[編輯 | 編輯原始碼]

TeX 有 25 個 *關鍵字*。這些詞前面沒有反斜槓,也不區分大小寫。TeX 僅在某些上下文中將這些詞解釋為關鍵字。

TeX 原語

[編輯 | 編輯原始碼]

這裡我們描述了 TeX 的 325 個原始控制序列中的每一個。每個條目都給出概要、描述和示例。概要給出了控制序列的正確語法上下文。例如,

\pretolerance=<integer>

給出了 TeX 整數引數之一的語法。在原始檔中,需要用 `<integer>` 替換實際的整數,如條目 `<a href="/wiki/TeX/pretolerance" title="TeX/pretolerance">\pretolerance</a>` 的“描述”部分所述。一般來說,任何形式為 `<...>` 的內容(其中省略號是一些描述性詞語)都需要用適當的內容替換;“描述”部分將告訴你哪些內容是允許的。

有時語法的一部分是可選的,這可以透過將它放在方括號中來表示,例如

\ifmmode <TeX code 1> [\else <TeX code 2>] \fi

這給出了 TeX 的 if-then-else 控制結構之一的語法。這裡的方括號表示 `\else <TeX code 2>` 在實際使用中不必包含。在任何情況下,方括號都不應該在實際使用中使用。

網路資源

[編輯 | 編輯原始碼]

其他華夏公益教科書

[編輯 | 編輯原始碼]
華夏公益教科書