ConTeXt : 合并字体

ConTeXt : 合并字体

我想创建一种字体,使用 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]
  1. 列出编码现在已经被弃用近十年了。
  2. 您应该使用serif而不是Xserif,并且mono而不是Xmono,... 。
  3. ConTeXt 没有定义名为 的字体euler,因此您需要实际使用eulernova(本质上是同一件事)。
  4. \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

在此处输入图片描述

相关内容