在 ConTeXt 中更改字体时“-”消失

在 ConTeXt 中更改字体时“-”消失

这是我的代码:

\starttext
  \starttyping
    -- comment
  \stoptyping
\stoptext

它可以很好地编译:

但是,如果我改变字体:

\usemodule[simplefonts][size=12pt]
\setmonofont[Source Code Pro]

\starttext
  \starttyping
    -- comment
  \stoptyping
\stoptext

其中一个破折号消失:

为什么会发生这种情况?

答案1

如果你加载等宽字体而没有任何进一步的信息,它将自动启用tlig包含--和的 TeX 连字 ( ) ---。为了防止这种情况,请使用 加载字体features=none

此外,该simplefonts模块已被我下面展示的方法取代\definefontfamily。为了匹配所有字体的大小,我们应用了一些缩放。

\definefontfamily [source] [rm] [Source Serif Pro]     [scale=0.9]
\definefontfamily [source] [ss] [Source Sans Pro]
\definefontfamily [source] [tt] [Source Code Pro]      [features=none]
\definefontfamily [source] [mm] [TeX Gyre DejaVu Math] [scale=0.9]

\setupbodyfont[source,12pt]

\starttext
\starttyping
  -- comment
\stoptyping
\stoptext

在此处输入图片描述

答案2

好吧,我不知道除了字体本身提供的连字之外,还有 TeX 连字。这解决了这个问题:

\setmonofont[Source Code Pro][features=none]

相关内容