![单个 XeLaTeX 文档中的高、低 CJK 代码点](https://linux22.com/image/236417/%E5%8D%95%E4%B8%AA%20XeLaTeX%20%E6%96%87%E6%A1%A3%E4%B8%AD%E7%9A%84%E9%AB%98%E3%80%81%E4%BD%8E%20CJK%20%E4%BB%A3%E7%A0%81%E7%82%B9.png)
我经常需要在同一行文本中组合具有低代码点和高代码点的 CJK 字符。(此处的“低”表示“在基本多语言平面”或 BMP 中,代码点低于十六进制 10000。)我没有一种包含我喜欢的所有 CJK 字符的字体,因此我使用两种看起来相同的字体,它们一起覆盖(显然)所有 CJK 字符。
在包含两种字符类型的文本行中,TeX 需要明确指示使用哪种字体:如果特定字体不包含所需的字符,则显示相应字形的唯一方法是为该字符指定不同的字体。
我的做法是将普通 (BMP) 字体分配给 ,\setCJKmainfont
然后将包含所有高代码点字符的辅助字体分配给\setCJKsansfont
。麻烦的是,在编写文档时,我必须手动将 CJK sans 字体分配给高代码点字符。
我的问题是,是否存在一个简单的程序可以根据哪种字体实际包含所需的字符来选择正确的字体 - 而无需我手动更改字体。
答案1
很抱歉,xeCJK
目前没有此功能。您可以使用zhspacing
它来代替。也许我们xeCJK
将来会添加此功能,但这需要相当多的代码。
使用zhspacing
:
\documentclass{article}
\usepackage{zhspacing}
\zhspacing
\newfontfamily\zhfont{SimSun}
\newfontfamily\zhcjkextbfont{SimSun-ExtB}
\begin{document}
漢字源