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

xeCJK vs ctex vs luatexja

qtnez
1 xeCJK vs ctex vs luatexja
Promote 0 Bookmark 02021-01-05quote  

這裡使用三種不同的機制,來編譯同一文稿(連使用的字型都相同),有興趣的朋友,
可以去比較一下他們的差異。這裡不談理論的東西,只談結果的呈現。

以下是文稿裡頭會用到的字型,都是可以在網路上下載,不會有版權問題的。

1 cwTeX Q 的字型(粗黑體除外,文鼎有意見)。
2 一點字坊字型(明體和顏體)。
3 花園明朝體。我們要用到的部份只是 ExtB(HanaMinB)的鄙份。
4 台北黑體。我們要用到的只是 Light 的部份。
5 Google Noto 字型。我們要用到的只是 Medium 的黑體字。
6 工程用單線體字。非必要。

至於設定的部份,請參考附件 xeCJK-LGJ.cfg 的設定檔,這是給 xeCJK 使用的。另外設定這個檔,
可以使文稿整潔。ctex 的部份設在文稿裡頭,因為他比較複雜,又要用 LaTeX3 的語法,還要考慮
pdflatex 的情形。

文稿有四種(因為 ctex 可用在 xelatex 及 lualatex):

1 ex2-x.tex → xeCJK + xelatex
2 ex2-c.tex → ctex + xelatex
3 ex2-a.tex → ctex + lualatex
4 ex2-j.tex → luatexja + lualatex

除了 xeCJK 的部份,標點符一律改用 cwTeX Q Ming Medium 的外,其餘內容皆相同。luatexja
的部份,標點符號使用 luacode 調整(這部份不一樣)。

目前的表現,大致上 xeCJK 勝出。ctex 的話,用 xelatex 及 lualatex 編譯結果會有差異。luatexja
則 sans/mono 字族的中文設定失敗,而且標點符號還需要微調。附件上有附上 pdf 檔可以做比較。

至少 luatexja 經過 luacode 調整後,除了句點還是全型外,其他的都變成半型(有漏網之魚)。這個基
本上是中日處理標點的方式不一樣的關係。中文的話是把標點當成全型去壓縮,日本的做法是把標點當
成半型去延伸空白。

Have fun!

 

※ update Tue Jan  5 11:20:01 CST 2021

luatex-ja 的部份 sans/mono 的中文字型並不是設定失敗,而是要匹配英文字的話,要傳 match 參數:

\usepackage[match]{luatexja-fontspec}

這樣的話就可用正常的 LaTeX 指令取字,會匹配到所設定的中文字型。否則就要用預設的 \mc,\gt 的取
字方式。

※ update Tue Dec 15 11:16:54 CST 2020

locale 及斷行,xeCJK 已經自行處理過,因此以下二行已無必要:

\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 0.5pt minus 0.3pt

請自行刪除或加註。

 

※ update Thu Dec 10 19:31:41 CST 2020

由於 xeCJK-LGJ.cfg 中的 cwming 沒有指定粗體,因此章節標題如果出現中文標點符號的話,將會是 Medium 的。
重定義 cwming:

\newCJKfontfamily\cwming{cwTeX Q Ming Medium}[Scale=1.08,
BoldFont=Noto Sans CJK JP Medium,
BoldItalicFont=Noto Sans CJK JP Medium,
ItalicFont=cwTeX Q Kai Medium]

請自行更改加入。

edited: 4

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