
我記得,我在一份技術期刊上讀過一篇文章,其中作者提請讀者註意許多人感到困惑的問題排版語言和標記語言。
如何確定一種語言是排版語言還是標記語言?
據我了解,TeX 是一種排版語言,而 LaTeX 在 TeX 之上實作了一種標記語言。這是正確的放置方式嗎?
答案1
據我了解,TeX 是一種排版語言,而 LaTeX 在 TeX 之上實作了一種標記語言。這是正確的放置方式嗎?
是的,這是準確的,而且簡潔。
排版語言提供了將輸入流轉換為表面上的輸出的工具。這些工具包括
- 存取字體以及選擇和/或在字體之間切換的命令
- 沿著表面向各個方向移動的命令
- 將輸入流分解為行或段落並將結果分解為頁面的機制
- 命令以更有效的方式應用“基本”命令
作為最後一點的一個例子,tex 中一個非常有價值的特性是分組的概念。這是我用過的其他排版軟體中不存在的。例如,在一個這樣的系統中,有一個將上標升高到適當高度的命令,以及一個將上標後退相同距離的「反向」命令。 (它並不總是將一個值精確地放回原始基線。) 另一方面,tex 在新組啟動時存儲原始值,應用該組的本地值,然後忘記本地值並恢復保存的值價值觀。
另一方面,標記系統根據材料的功能或結構來識別材料,而不是根據材料在表面上的外觀來識別材料。因此,存在「標題」、「作者」、「章節」、「部分」、「定理」等標識符,並且這些標識符在處理時被轉換以使用適當的排版命令。如果使用通用詞彙和語法,這種結構標記允許輕鬆切換輸出格式。 Latex 和 xml 是標記系統的兩個範例。如果沒有“後端”支持,兩者都無法使用。在 Latex 中,這種支援是不可或缺的,而 xml 則需要單獨的工具;然而,在這兩種情況下所識別的是結構元素,而不是最終外觀,因此是「標記」。
答案2
@barbara beeton - 非常有趣的文章,我完全同意,實際上我想添加以下輸入作為評論,但它太長了,因此將其寫為答案。我喜歡「排版語言」這個詞,即使我在維基百科中找不到它的定義。因此我想出瞭如下的對應關係類比:
(數位)版式和手稿與樣式表語言和標記語言:基於(數字)版式、手稿、樣式表語言和標記語言的定義,樣式表語言是數位版式的一種形式,旨在製作標記手稿用標記語言編寫的相應文件在顯示時清晰、可讀且有吸引力。樣式表語言功能:「語法」、「選擇器」、「屬性」、「值和單位」、「值傳播機制」和「格式化模型」包含排版所需的所有正式資訊:字型、磅值、行長、行距、字母間距和字母對之間的間距。