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

LuaLaTeX 排版中文(二):字型設定

qtnez

joined: 2016-10-14
posted: 16
promoted:
bookmarked:
1subject: LuaLaTeX 排版中文(二):字型設定Promote 0 Bookmark 08 days agoquote  

目前 LuaTeX(LaTeX) 的中文排版,是靠 luatexja 這個 package,這是日本人寫的,當然第一重點是處理日文,但在斷行及字體處理上,中日文其實差不多,可以沿用,就是小部份排版慣例上的不同而會有不同。像日文絕少使用問號及驚嘆號,中文就用得很多。

中文字型的設定,可以使用 luatexja-zhfonts 這個 package。已經定義好許多中文字型定義,但繁體中文只有一種,那就是 cwttf(這是由 cwTeX Type 1 字型轉成的 TrueType 字型)。要修改或者增加的話,把這個檔案 copy 到你的工作目錄,再來修改,編譯時會優先選用工作目錄的同名檔案(依樣畫葫蘆增加就可以了)。文稿中使用上也很簡單,以 cwttf 為例:

\usepackage[cwttf]{luatexja-zhfonts}

只要這一行就行了,就會調用 cwttf(當然,你的系統上要安裝好這些字型)。這樣就不會在文稿上布滿了一堆字型定義。

有了 luatexja-zhfonts 就不必再引入 luatexja-fontspec 或者是 luatexja package 了,會自動引入。

如果不選用定義好的字型,那麼系統預設(luatexja 的預設)會使用 Harano 字型(安裝 TeX Live 的話,這些字型會安裝上去)。這是日本的字型,雖然有漢字,但形狀和我們有小差異,但基本上能用,但像「喩」和「喻」的話,是會選用前者。而且,標點符號是在左下底線(baseline)上的,而不是在中央。


註(2020.11.16):
cwttf 可以在此下載:
或者需要標點符號左下底線的字型的話,可以考慮 cwTeX Q 字型(修改自 cwttf):
https://github.com/l10n-tw/cwtex-q-fonts  (字型的名稱要自行更改,和原 cwttf 不一樣)
edited: 2
guest
2subject: Promote 0 Bookmark 07 days agoquote  

感謝分享。luacode那一段確實有大用,也還需要加入一些符號(例如頓號)否則可能會出現在列首。

qtnez

joined: 2016-10-14
posted: 16
promoted:
bookmarked:
3subject: Promote 0 Bookmark 07 days agoquote  

luatexja 本身有避頭點的功能,因此不會出現在行首。不過,那段 lua code 是暫時性的,

正常應該是從原始碼去修改,或者另一套的機制來處理,例如 xeCJK 及 ctex 的做法,這

裡只是簡單的介紹可以不必透過其他套件就就可以處理中文。

 

會這麼處理是因為 luatexja 不知道為什麼在 lualatex 文稿時,問號及驚嘆號後面會多留空

白。plain luatex 則不會如此。因此只修正問號及驚嘆號的部份。

edited: 1
guest
4subject: Promote 0 Bookmark 07 days agoquote  

qtnez

luatexja 本身有避頭點的功能,因此不會出現在行首。

我滿肯定對頓號還沒有加入避頭點的功能,但利用您提供的luacode把頓號取代成「頓號加空白鍵」即可解決,亦沒有多餘不自然的空白,供您參考。

可能是日文不用頓號所以luatexja沒有處理好的關係?整體來看,xecjk的解決方案對中文文稿還是成熟非常多。

qtnez

joined: 2016-10-14
posted: 16
promoted:
bookmarked:
5subject: Promote 0 Bookmark 07 days agoquote  

guest
我滿肯定對頓號還沒有加入避頭點的功能,但利用您提供的luacode把頓號取代成「頓號加空白鍵」即可解決,亦沒有多餘不自然的空白,供您參考。

可能是版本的問題?我用的是 TeX Live 2020。

$ lualatex -v
This is LuaHBTeX, Version 1.12.0 (TeX Live 2020/W32TeX)

我測試的結果頓號(U+3001)是會避頭點。能舉個不會避頭點的小例子嗎?謝謝!

可能是日文不用頓號所以luatexja沒有處理好的關係?整體來看,xecjk的解決方案對中文文稿還是成熟非常多。

因為日文用的頓號和我們的不一樣,就像他們絕少使用問號及驚嘆號一樣。

edited: 2

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