中文標點符號的調整--ChineseJFM

作者: EdwardGJLee (LGJ)   2020-12-28 10:43:20
中文標點符號的重點在於,是要置中還是左下角?另外就是要不要因為版面而
做壓縮或延伸。目前 xeCJK/ctex/luatex-ja 都可以對中文標點符號做粗略的
調整。但是目前只有台灣及香港的中文字型,標點符號是置中的,而這些套件
卻是針對標點符號在左下角來做調整的,這用在置中的標點符號就會出問題了。
ChineseJFM 就是針對這個問題再做精細微調,不過他是 Lua script 寫的,主
要是配合 luatex-ja 及 ctex,xeCJK 就不能用了,以下先介紹使用方法,然後
再針對 xeCJK 加參數微調(xeCJK 可以自行定義自己想要的 punct style)。
luatex-ja 的部份:
\documentclass{article}
\usepackage{luatexja-fontspec}
\setmainjfont[BoldFont=Noto Sans CJK TC Medium,
YokoFeatures = {JFM = zh_TW/quanjiao},
BoldItalicFont=I.Ngaan,
ItalicFont=cwTeXKai]{I.MingCP}
ctex 的部份:
\documentclass{article}
\usepackage[fontset=none,punct=zh_TW/quanjiao,scheme=plain]{ctex}
% xelatex 不支援 AlternateFont 選項的設定。
\setCJKmainfont[BoldFont=Noto Sans CJK TC Medium,
BoldItalicFont=I.Ngaan,
ItalicFont=cwTeXKai,
AlternateFont={"20000 -> "2A6DF, % CJK ExtB
"2A700 -> "2B73F, % CJK ExtC
"2B740 -> "2B81F % CJK ExtD
}{HanaMinB}]{I.MingCP}
註:ctex 的話,如果 scheme 不設定,將會加大字距及行距。ctex class 也可以
使用。當然,編譯時要用 lualatex。
xeCJK 的部份:
\documentclass{article}
\usepackage{xeCJK}
\xeCJKsetup{PunctStyle=quanjiao}
%以下設定,只能用在標準的 OTF 規格字型
%\setCJKmainfont{I.MingCP}[Language=Chinese Traditional]
\setCJKmainfont{I.MingCP}
%微調過度壓縮的情形
\xeCJKEditPunctStyle{quanjiao}{optimize-kerning=true}
不過調整過後 xeCJK 還是差強人意。底下附件 tcpunct 是 xeCJK的例子。tcpunct2
是 luatex-ja 的例子,tcpunct3 是 ctex 的例子。
※例子在 http://hyperrate.com/thread.php?tid=34855
另外,這個 Lua script 是配合新版本的 luatex-ja,所以請先更新你的 TeX 系統至
最新版本。
參考網站:
GitHub - tanukihee/ChineseJFM: 适用于简繁中文与日文的 luatexja JFM 文件
https://github.com/tanukihee/ChineseJFM
其餘資訊請 texdoc chinesejfm。
作者: andrew43 (討厭有好心推文後刪文者)   2020-12-28 12:53:00
讚讚
作者: Ice9 (又到了屬於我的季節)   2020-12-28 15:20:00
感謝。雖然目前用不到,但先收下。
作者: EdwardGJLee (LGJ)   2019-01-11 13:52:00
BTW,也可以用在 plain (Lua)TeX 喔!\jfont\ming={name:cwTeXMing:jfm=zh_TW/quanjiao}最明顯的作用是,行尾的標點符號會切齊。
作者: JamesChen (James)   2019-02-06 17:18:00
不置中比較好
作者: hizuki (ayaka)   2019-04-22 16:46:00
老ctex現在還有人用?
作者: EdwardGJLee (LGJ)   2019-04-25 18:53:00
是指倚天的那個?應該沒人用了吧?這裡的 ctex 是指中國那邊開發的,和倚天的同名。

Links booklink

Contact Us: admin [ a t ] ucptt.com