当我为不同的样式设置字体系列时,上下文似乎吞噬了我正在打印的字符\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
。原因是,如果您省略声明features
,default
则将使用包括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