上下文:定义字体系列吞噬字符

上下文:定义字体系列吞噬字符

当我为不同的样式设置字体系列时,上下文似乎吞噬了我正在打印的字符\type{-}

我正在使用\type以避免将破折号符号合并为长破折号。

梅威瑟:

\definefontfamily[mainface][serif][TeX Gyre Pagella]
\definefontfamily[mainface][sans][TeX Gyre Heros]
\definefontfamily[mainface][mono][Latin Modern Mono]
\setupbodyfont[mainface]

\starttext

{\tt test \type{-}\type{-}\type{-}} 

test \type{-}\type{-}\type{-}

\stoptext

输出为:test -

而不是预期的:test ---

答案1

正如 Wolfgang 已经评论的那样,您必须添加features=none。原因是,如果您省略声明featuresdefault则将使用包括tlig常见 TeX 连字符的集合,---即将其转换为 emdash。

破折号处于不同的\type调用中,但连字符是在稍后的阶段应用的,因此 LuaTeX 只会看到三个连续的破折号并替换它们。

您实际上可以在破折号之间添加空的内容来抑制连字,\type{-}\special{}\type{-}\special{}\type{-}但我不建议这样做。

你也必须定义一个数学系列,否则您无法使用数学。您可能认为这不是什么大问题,但 ConTeXt 可能会在内部使用数学,例如 itemize 项目符号等。

\definefontfamily[mainface] [serif] [TeX Gyre Pagella]
\definefontfamily[mainface] [sans]  [TeX Gyre Heros]
\definefontfamily[mainface] [mono]  [Latin Modern Mono] [features=none]
\definefontfamily[mainface] [math]  [Latin Modern Math]
\setupbodyfont[mainface]

\starttext

{\tt test \type{-}\type{-}\type{-}} 

test \type{-}\type{-}\type{-}

$a^2 + b^2 = c^2$

\stoptext

在此处输入图片描述

相关内容