我的文档通常包含等量的中文和英文。这是我在某个手册中找到的序言:
\documentclass{ctexbook}
\setmainfont{Minion Pro}
\setCJKmainfont[BoldFont=Adobe Heiti Std, ItalicFont=Adobe Kaiti Std, SmallCapsFont=*]{Adobe Song Std}
\begin{document}
你好
hello
\end{document}
这个简单的设置似乎让我在输入英语时使用 Minion Pro 字体,在输入中文时使用其他字体。
但是,当我输入任何注音符号时,4 个声调符号(“ˊ”、“ˇ”、“ˋ”和“˙”)都显示为方框。如果我设置\setmainfont{Adobe Song Std}
(这意味着从未使用过 Minion Pro 字体),声调符号会正常呈现。这说明它正在尝试使用 Minion Pro 字体来呈现它们(在上述文档中),但 Minion Pro 没有这些字符。
- 我如何确保这四个符号始终使用正确的 CJK 字体呈现?
答案1
只需将\xeCJKsetcharclass
字符设置为类1
:
\documentclass{ctexbook}
\xeCJKsetcharclass{`\ˊ}{`\ˊ}{1}
\xeCJKsetcharclass{`\ˇ}{`\ˇ}{1}
\xeCJKsetcharclass{`\ˋ}{`\ˋ}{1}
\xeCJKsetcharclass{`\˙}{`\˙}{1}
\begin{document}
山明水秀啊(ㄕㄢㄇㄧㄥˊㄕㄨㄟˇㄒㄧㄡˋㄚ˙)
\end{document}
请注意,\xeCJKsetcharclass
前两个参数接受两个数字作为字符代码范围。\xeCJKsetcharclass{`\ˊ}{`\ˊ}{1}
与 相同\XeTeXcharclass`\ˊ=1
。