有没有一种好方法可以在 ConTeXt 中自动将斜体文本中的所有括号直立起来?特别是我对一种可以与 EB Garamond 配合使用的解决方案感兴趣。我目前的解决方法是在我的 typescript 文件中定义一个 fallback,强制将直立的括号变为斜体,如下所示:
\definefontfeature
[eb-garamond-test]
[default]
[itlc=yes]
\definefontfallback [uprightparenteses] [name:EBGaramond-Regular] [0x00028:0x00029] [force=yes]
\starttypescript [serif] [ebgaramond-test]
\setups[font:fallback:serif]
\definefontsynonym [Serif] [name:EBGaramond-Regular] [features=eb-garamond-test]
\definefontsynonym [SerifItalic] [name:EBGaramond-Italic] [features=eb-garamond-test,fallbacks=uprightparenteses]
\stoptypescript
\starttypescript [ebgaramond-test]
\definetypeface[ebgaramond-test] [rm] [serif] [ebgaramond-test] [default]
\stoptypescript
\setupbodyfont[ebgaramond-test]
\starttext
({\em if (if) if})
\stoptext
目前唯一的问题是斜体校正itlc=yes
显然不会影响这些,而且看起来不太好(外面的是真正的罗马字体,具有有效的斜体校正,而里面的是假的,没有斜体校正):
更新:
好的,一个可能的解决方案是按照我的做法(使用括号的字体后备)并按照@dg 下面的建议添加,\setupitaliccorrection[global,always]
以使斜体校正起作用。