ConTeXt 中带有欧拉字体的数学模式中的匕首符号?

ConTeXt 中带有欧拉字体的数学模式中的匕首符号?

我跟着这个答案在数学模式下使用 Neo Euler 字体。我发现 Euler 中缺少匕首符号 (†)。有没有办法在数学模式下使用文本模式字体中的匕首符号?

这是一个简单的例子:

\usetypescriptfile[euler]
\definetypeface[mainface][rm][serif][palatino]       [default]
\definetypeface[mainface][ss][sans] [helvetica]        [default] [rscale=auto]
\definetypeface[mainface][mm][math] [pagellaovereuler] [default] [rscale=auto]
\setupbodyfont[mainface,12pt]
\appendtoks \rm \to \everymathematics
\setupmathematics
  [lcgreek=normal, ucgreek=normal, integral=nolimits]

\starttext
Dagger in text mode: †

Math mode: $†$ ${\rm †}$        % Both don’t work.
\stoptext

并呈现结果:

结果

我的 ConTeXt 版本是“当前版本:2015.04.15 01:44”。我希望至少能让它${\rm †}$工作。


更新:在评论中,@Thruston 提到这$\hbox{†}$有效。问题是我只使用 Dagger 来做上标,并且$x^{\hbox{†}}$不会像通常的上标那样缩小 Dagger 的大小。所以现在我的解决方法是

\define\dagger{\hbox{\tfx †}}

我在所有以前的文档中都使用了\daggerunicode 字符,所以如果我想重新编译现有文档,这会起作用(至少在没有嵌套上标涉及匕首的文档中)。


更新2:嗯...

事实证明我只是$x^{\text{†}}$不知道我怎么会忘记这一点。

答案1

您需要添加匕首的后备:

\unprotect
\definefontfallback [pagellaovereuler] [texgyrepagella-math] [0x02020]         [\c!check=\v!yes,\c!force=\v!yes]
\protect

完整工作示例:

\usetypescriptfile[euler]
\definetypeface[mainface][rm][serif][palatino]       [default]
\definetypeface[mainface][ss][sans] [helvetica]        [default] [rscale=auto]
\definetypeface[mainface][mm][math] [pagellaovereuler] [default] [rscale=auto]

\unprotect
\definefontfallback [pagellaovereuler] [texgyrepagella-math] [0x02020]         [\c!check=\v!yes,\c!force=\v!yes]
\protect

\setupbodyfont[mainface,12pt]
\appendtoks \rm \to \everymathematics
\setupmathematics
  [lcgreek=normal, ucgreek=normal, integral=nolimits]

\starttext
Dagger in text mode: †

Math mode: $†$ ${\rm †}$        % Both work.
\stoptext

创建一个在数学模式中使用但在欧拉中缺失的所有其他文本符号的列表,然后将其发送到 ConTeXt 邮件列表,这可能是一个好主意。这样,可以将后备添加到 type-imp-euler.mkiv。

答案2

自我回答:$x^{\text{†}}$. :-/

相关内容