使用 otf-libertinus 和 ConTeXt 排版数学

使用 otf-libertinus 和 ConTeXt 排版数学

我正在尝试使用自由衬线体用于排版文本和数学的字体。

\starttypescript [libertinusserif]
\setups[font:fallback:serif]          % security: if not found==> back to defaults
% \definefontsynonym[ConTeXt basics name] [Human readable]       [features=default]
  \definefontsynonym[Serif]                 [LibertinusSerif-Regular]       [features=default]
  \definefontsynonym[SerifItalic]           [LibertinusSerif-Italic]        [features=default]
  \definefontsynonym[SerifBold]             [LibertinusSerif-Semiold]           [features=default]
  \definefontsynonym[SerifBoldItalic]       [LibertinusSerif-SemiboldItalic]    [features=default]
\stoptypescript

\starttypescript [libertinusserif]
  \definetypeface [libertinusserif]    [rm] [serif] [libertinusserif]    [default]
\stoptypescript

\setupbodyfont[libertinusserif, 14pt]

\starttext
Just some text.

Some text with \m{m+a_{th}} in it.

\stoptext

并出现以下错误:

Math error: parameter \Umathsub_shift_down\textstyle is not set


\m_syst_action_nop ...artimath #1\normalstopimath 
                                                  \fi 
l.21 Some text with \m{m+a_{th}}
                               in it.

(注意:当我用数学注释掉该行或不设置正文字体时,就会产生输出。)

答案1

我认为一个问题(您遇到的错误)是您没有定义数学字体。

如果您使用独立版本,则只需确保系统中可以找到字体(我的$OSFONTDIR设置为$HOME/.fonts)。这似乎不是您的问题,因为注释掉数学运算后您就可以获得字体。

因此,你将通过添加这些漂亮的字体来工作

\setupbodyfont[libertinus]

到您的设置。定义似乎取自

tex/texmf-context/tex/context/fonts/mkiv/type-imp-libertinus.mkiv

相关内容