使用 Simplefonts 和 ConTeXt 的小型大写字母

使用 Simplefonts 和 ConTeXt 的小型大写字母

我正在尝试使用 ConTeXt 中的 Simplefonts 功能,但无法使其与 Latin Roman 配合使用。以下内容适用于 TexGyre 字体,但使用 Latin Modern 时我无法获得小型大写字母:

\definefontfeature[default][default][onum=yes]

\definefontfamily [mainface] [rm] [Latin Modern Roman]
\definefontfamily [mainface] [ss] [Latin Modern Sans]
\definefontfamily [mainface] [tt] [Latin Modern Mono]

\setupbodyfont[mainface]

\starttext

\rm\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\ss\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\tt\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps


\stoptext

答案1

最简单的解决方案是直接使用moderntypescript。这会将所有字体设置为 Latin Modern。

\setupbodyfont[modern]

\starttext

\rm\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\ss\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\tt\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\stoptext

或者,您可以使用\definefontfamily(MKIV 中的 的后继者simplefonts)。但是,这并不好玩,因为您必须自己指定各种内容,例如 Latin Modern Mono 的粗体和粗斜体。

\definefontfamily [mainface] [rm] [Latin Modern Roman]
                  [sc=file:lmromancaps10regular]
\definefontfamily [mainface] [ss] [Latin Modern Sans] 
\definefontfamily [mainface] [tt] [Latin Modern Mono]
                  [bf=file:lmmonolt10bold,
                   bi=file:lmmonolt10boldoblique,
                   sc=file:lmmonocaps10regular]

\setupbodyfont[mainface]

\starttext

\rm\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\ss\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\tt\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\stoptext

如果您想混合用作打字稿的不同字体,您可以简单地定义自己的打字稿(在这种情况下这是推荐的方法)。

\starttypescript [mainface]
  \definetypeface [\typescriptone] [rm] [serif] [modern] [default]
  \definetypeface [\typescriptone] [ss] [sans]  [modern] [default]
  \definetypeface [\typescriptone] [tt] [mono]  [modern] [default] [features=none]
  \definetypeface [\typescriptone] [mm] [math]  [modern] [default]
\stoptypescript

\setupbodyfont[mainface]

\starttext

\rm\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\ss\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\tt\tf Roman \it Italic \bf Bold \bi BoldItalic \sc SmallCaps

\stoptext

相关内容