![如何使用 ConTeXt 中周围文本的字体显示数学模式中的书面文本?](https://linux22.com/image/257265/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20ConTeXt%20%E4%B8%AD%E5%91%A8%E5%9B%B4%E6%96%87%E6%9C%AC%E7%9A%84%E5%AD%97%E4%BD%93%E6%98%BE%E7%A4%BA%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E4%B8%AD%E7%9A%84%E4%B9%A6%E9%9D%A2%E6%96%87%E6%9C%AC%EF%BC%9F.png)
在我的文档的某些部分,我在数学模式中有文本,用于定位文本,例如:
\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
这使