我想创建一种字体,使用 palatino(或 pagella)表示文本,使用 euler 表示数学。如果我正确理解了文档,应该可以使用字体实现,但我无法让它工作:所有文本都是拉丁文。以下是受文档启发的 MWE:
\starttypescript [perso] [texnansi, ec, qx, t5, default]
\definetypeface[perso] [rm] [Xserif] [palatino] [default]
\definetypeface[perso] [tt] [Xmono] [palatino] [default]
\definetypeface[perso] [mm] [Xmath] [euler] [default]
\stoptypescript
\starttext
\setupbodyfont[perso]
Bonjour les ami·e·s
\startformula
x + 3 = \mathcal{P}
\stopformula
\setupbodyfont[palatino]
Bonjour les ami·e·s
\startformula
x + 3 = \mathcal{P}
\stopformula
\stoptext
我究竟做错了什么 ?
先感谢您
答案1
我想创建一种字体,使用 palatino(或 pagella)作为文本,但使用 euler 作为数学表示。
ConTeXt 已经为此提供了内置解决方案:
\setupbodyfont[pagella-with-euler]
\startTEXpage
Euler's Formula: $e^{i\pi} + 1 = 0$
\stopTEXpage
关于您发布的代码:
\starttypescript [perso] [texnansi, ec, qx, t5, default] \definetypeface[perso] [rm] [Xserif] [palatino] [default] \definetypeface[perso] [tt] [Xmono] [palatino] [default] \definetypeface[perso] [mm] [Xmath] [euler] [default] \stoptypescript \starttext \setupbodyfont[perso]
- 列出编码现在已经被弃用近十年了。
- 您应该使用
serif
而不是Xserif
,并且mono
而不是Xmono
,... 。 - ConTeXt 没有定义名为 的字体
euler
,因此您需要实际使用eulernova
(本质上是同一件事)。 \setupbodyfont
最好是之前\starttext
(以防止加载 LM 后备字体)。
所以:
\setuppagenumbering[state=stop]
\starttypescript [perso]
\definetypeface[perso] [rm] [serif] [palatino] [default]
\definetypeface[perso] [tt] [mono] [palatino] [default]
\definetypeface[perso] [mm] [math] [eulernova] [default]
\stoptypescript
\setupbodyfont[perso]
\starttext
Bonjour les ami·e·s
\startformula
x + 3 = \mathcal{P}
\stopformula
\stoptext