cht電腦資訊文書排版TeX
adm Find login register

到底該用哪一個 tex 引擎?

qtnez

joined: 2016-10-14
posted: 116
promoted: 1
bookmarked:
台灣‧屏東
1subject: 到底該用哪一個 tex 引擎?Promote 0 Bookmark 02025-03-07quote  

目前(2025.03.07) TeX Live 中,原始的 tex 指令,仍然是使用原來的 tex 引擎,latex 指令則是連結到 pdftex 引擎。當然這二個引擎都不直接支援漢字排版。

中文方面,目前的主流應該是使用 xetex 引擎。不過,如果你是長期都會使用 TeX/LaTeX 的使用者,建議你漸漸的去熟悉 luatex 引擎。主要原因有二個,一個是 xetex 引擎,目前並沒有人在維護及開發。但 luatex 引擎則有 luatex team 在維護開發。第二個原因是,luatex 的彈引性較佳,許多新功能(例如 Variable font)都有支援。luatex 引擎最為人垢病的是執行速度慢,這點也有人提出來給開發者,相信會漸漸的改善。

目前在 TeX Live 也有冗長的討論這個問題:

https://tug.org/pipermail/tex-live/2025-March/051256.html

目前主流 TeX 引擎的分析比較說明,請參考:

https://www.texdev.net/2024/11/05/engine-news-from-the-latex-project

當然,如果你的文章是以英文為主,那麼 pdftex 引擎是首選。

-- 
Do not feed the troll, please.

edited: 1
qtnez

joined: 2016-10-14
posted: 116
promoted: 1
bookmarked:
台灣‧屏東
2subject: Promote 0 Bookmark 02025-03-12quote  

不少人反應 LuaTeX 引擎實在是太慢了,這裡稍微說明一下:

有三個部份會造成 LuaTeX 慢:

  1. 字型的處理:
    LuaTeX 是自行處理字型,而不相依於系統,這是專業排版的正確的方向,因為字型的處理如果是相依於系統,那麼就很有機會在不同的系統,編譯後的排版會產生差異。因此排版軟體應該盡可能的獨立自行處理字型。而 LuaTeX 處理字型是用 Lua script,這也是造成處理會慢下來的重要原因。不過,這只是第一次執行時會慢,等到字型 cache 建立完畢後,以後就不會有這個問題了。
  2. 編譯慢的問題:
    老實說這有點是在揹黑鍋,實際上 LuaTeX 引擎本身,編譯速度並不慢,實際使用 plain TeX 或者是 ConTeXt 去編譯就會知道。這個問題有點複雜,簡單的說就是 LaTeX package 先天上造成的問題,就是著名的 moveing argumaent 及 fragile command 的問題,LaTeX3 目前也是盡量的把 fragile command 轉成 robust,而這個問題(幾乎)不存在於 plain TeX 及 ConTeXt。簡單的說就是目前的 LuaTeX 引擎並(還)沒有針對 LaTeX 做最佳化。
  3. CJK 字型:
    這也是拖慢編譯速度的一個因素。

當然 CJK 的問題,還有一種選擇,就是使用前置處理的方式,仍然是使用 PDFTeX 引擎,例如 CJK package 及 cwTeX 的方式,當然這是有局限性的。

-- 
Do not feed the troll, please.

edited: 1

cht電腦資訊文書排版TeX
adm Find login register
views:242