如何使用 ConTeXt 中周围文本的字体显示数学模式中的书面文本?

如何使用 ConTeXt 中周围文本的字体显示数学模式中的书面文本?

在我的文档的某些部分,我在数学模式中有文本,用于定位文本,例如:

\math{
    \overset{
        \text{This text is above.}
    }
    {
        \text{This text is below.}
    }
}

我发现,即使在定义为 Sans Serif 的环境中,放置在\text{}里面的任何文本\math{}都会使用 Serif 正文字体显示,例如:

\starttypescript[serif][stsong]
    \definefontsynonym[stsong][name:stsong][features=chinese]
\stoptypescript

\starttypescript[sans][stheiti]
    \definefontsynonym[stheiti][name:stheiti][features=chinese]
\stoptypescript

\starttypescript[serif][stsong]
    \definefontsynonym[Serif][stsong][features=chinese]
\stoptypescript

\starttypescript[sans][stheiti]
    \definefontsynonym[Sans][stheiti][features=chinese]
\stoptypescript

\definetypeface[stsong][rm][serif][stsong]
\definetypeface[stheiti][ss][sans][stheiti]

\setupbodyfont[stsong, 12pt]
\starttext
    {\stheiti This is some text.\math{\text{This is some more text.}}This is yet some more text.}
\stoptext
  • 将字体定义放在里面\text{},例如,\text{\stheiti Text.}并不是一个好的解决方案,因为大部分文本都在宏中,而宏可以出现在不同的地方,例如在 San Serif 章节标题中,或者在文档的主要 Serif 文本中。
  • 出于同样的原因,为数学模式设置单一字体也不适合。

如何将数学模式中的文本模式中的字体设置为其周围文本的字体?

答案1

这是 ConTeXt 中的一个回归错误。正如 Andrew Swann 所说,它可以与 MkIV fmt 2012.8.21 一起正确运行,现在也可以与 MkIV 2012.10.22 一起正确运行。下面是一个最小示例:

\starttext
\startTEXpage[offset=3mm]
\switchtobodyfont[sans]
\math{
    \overset{
        \text{This text is above.}
    }
    {
        \text{This text is below.}
    }
}
\stopTEXpage
\stoptext

这使

在此处输入图片描述

相关内容