在 ConTeXt 中使用多种字体

在 ConTeXt 中使用多种字体

随着我对 ConTeXt 的了解越来越多,我发现字体是一个非常复杂的话题。最近,我发现自己想做以下事情:

  • 标题页和章节标题使用一种字体
  • 对普通文本使用第二种字体
  • 章节标题将具有不同级别的大小和粗体变化

这就是我最终得到的结果:

\definefontfamily[titleface][sans][proximanova]
\definefontfamily[mainface][rm][Baskerville]

\setupbodyfont[mainface]
\definemakeup[titlepage][style=titleface]

\starttext
    \starttitlepagemakeup
        Some title page content.
    \stoptitlepagemakeup

    \startbodymatter
        \section{First}
        This is normal. {\bf This is bold.} {\em This is italic.} This is normal.
        \subsection{First First}
        This is normal. {\bf This is bold.} {\em This is italic.} This is normal.
    \stopbodymatter
\stoptext

这样我就可以使用 Proxima Nova 作为标题页,使用 Baskerville 作为普通文本。我一直在尝试弄清楚如何使用setuphead相同的标题字体,但使用粗体和不同大小的章节和小节,但我无法弄清楚。

正确的做法是什么?

答案1

您可以选择不同的方法来更改某些元素的字体,例如章节标题。最简单的方法是使用不同的typeface命令\switchtobodyfont

\setupbodyfont[pagella]

\setuphead
  [section]
  [style={\switchtobodyfont[dejavu,14pt]\bf}]

\starttext

\section{Knuth}

\samplefile{knuth}

\stoptext

更好的解决方案是为每种部分类型创建一个新字体,您可以在其中设置字体的大小。

\setupbodyfont[pagella]

\definefont [ChapterStyle] [file:dejavuserifbold*default at 14pt]

\setuphead
  [section]
  [style=ChapterStyle]

\starttext

\section{Knuth}

\samplefile{knuth}

\stoptext

当您已经拥有现有的typescripts字体部分时,您可以使用\classfont以名称 typescript 和 alternative 作为参数的命令。

\setupbodyfont[pagella]

\definefont [ChapterStyle] [\classfont{dejavu}{SerifBold} at 14pt]

\setuphead
  [section]
  [style=ChapterStyle]

\starttext

\section{Knuth}

\samplefile{knuth}

\stoptext

相关内容