对 `\mathcal` 使用一种字体,对常规数学运算使用另一种字体 (ConTeXt)

对 `\mathcal` 使用一种字体,对常规数学运算使用另一种字体 (ConTeXt)

我想使用(例如)Tex Gyre Heros Math 表示\mathcal,但(例如)Tex Gyre Pagella Math 一般用于数学。(我为什么要这样做,因为 Pagella 的\mathcal对我来说似乎很难辨认。)我猜关键字uppercasescript(分别是lowercasescript)表示定义字体回退与我的目的有关,但definefontfallback显然不适合情况。

为了具体起见,考虑我使用

\definefontfeature [default] [default] [onum=yes]
\definefontfamily [MainFace] [rm] [TeX Gyre Pagella]
\definefontfamily [MainFace] [ss] [TeX Gyre Heros]
\definefontfamily [MainFace] [tt] [TeX Gyre Cursor] [features=none]
\definefontfamily [MainFace] [mm] [Tex Gyre Pagella Math]
\setupbodyfont [MainFace, 12pt]

但如果将上面的行替换为(仅根据我的猜测)

\definefontfamily [MainFace] [mm] [Tex Gyre Pagella Math]
\definefontfamily [MainFace] [mm] [Tex Gyre Heros Math] [range=uppercasescript]

这不管用;Tex Heroes 一直被使用

答案1

当您使用\definefontfamily命令设置文档的字体时,您可以使用该命令\definefallbackfamily设置某些字符的替换。

您最初的问题中的一个问题是,您尝试加载TeX Gyre Heros Math不存在的内容,结果没有任何内容被替换。

\definefontfamily     [MainFace] [rm] [TeX Gyre Pagella]
\definefallbackfamily [MainFace] [mm] [TeX Gyre DejaVu Math] [force=yes,range=lowercasescript]
\definefontfamily     [MainFace] [mm] [TeX Gyre Pagella Math]

\setupbodyfont [MainFace, 12pt]

\starttext
\m{abc \mathscript abc}
\stoptext

相关内容