随着我对 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