我正在写一个关于汉字分解的 LaTeX 文档。因此我需要很多奇怪和不常见的字符。
我已经安装了几种字体来覆盖所有 CJK 集,并且在我的系统中所有字符都能够正常显示。
但是,它们来自不同的字体。通常来自 HanMin A、B 和 IPAexMincho。因此,当我在 LaTeX 中编译时,我得到了可怕的错误:
Missing character: There is no
答案1
如果你需要的字体都覆盖一个完整的 Unicode 块,你可以使用ucharclasses
使用 XeLaTeX 为每个中文块设置字体。例如,您可以设置主中文字体,然后为该CJKUnifiedIdeographsExtensionC
块加载另一个字体。
如果你需要从另一种字体中修补单个字符,你可以将其设置为活动字符newunicodechar
例如
\newfontfamily\zhextrafont{Babelstone Han}
\newunicodechar{字}{{\zhextrafont 字}}
如果您想自动检测主字体中缺少哪些字符,并为您事先不知道其覆盖范围的字体实现后备,则可以使用\iffontchar
。