中文标点符号的调整--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