对于 ConTeXt 中缺少的字形,如何恢复到其他字体?

对于 ConTeXt 中缺少的字形,如何恢复到其他字体?

我有自动生成的混合语言数据输入(不用问),我需要对其进行排版。幸运的是,一次最多只能有 2 种语言,而且我知道这两种语言是什么,但遗憾的是我无法使用适当的标记来标记内容以在字符串内描述语言。例如,我可能有一个字符串:

創作

我能找到的所有字体回退文档都与设置字体缺失时发生的情况有关。例如,如果我为没有粗体变体的字体设置自定义字体系列,我可以将其设置为使用斜体,或者如果字体系列中没有等宽变体,则可以完全回退到默认或其他字体系列。

我无法弄清楚的是,当字体缺少字形时,如何从一种字体切换到另一种字体。对于上面的例子,我使用 Noto 系列字体进行排版,我希望将 Noto Naskh Arabia 作为默认字体,但当遇到阿拉伯字体中不存在的拉丁字符时,我希望它改用 Noto Sans?

这样的字形后备模式该如何编码?

答案1

由于您没有提供最小示例,因此很难判断,所以我们不知道您使用哪种机制来设置字体。如果您使用新的字体选择方案,则可以为某些范围定义后备方案,例如:

\definefallbackfamily [myfont] [serif] [Gentium] [range=greekandcoptic]

\definefontfamily [myfont] [serif] [Tex Gyre Termes]

这将在 TeXGyreTermes 中排版普通拉丁字符,在 Gentium 中排版希腊字符。您可以将范围(例如 latinextended、basiclatin)组合成一个集合;查看上下文树中的文件 font-sel.mkvi 以了解其工作原理。

相关内容