我正在使用tocloft
和fontspec
重新格式化目录。
我有这个代码:
\newfontface\Verdana{Verdana1}[
Path=fonts/,
Extension=.ttf,
BoldFont=Verdana1b,
BoldFeatures={SmallCapsFont={Verdana1b}}
]
\usepackage[titles]{tocloft}
\renewcommand\cftchapfont{\normalfont\fontsize{10}{12}\Verdana\selectfont\sc\bfseries\expandafter}
这是结果。请注意章节号的大小与页码的大小。
另一方面,如果我切换\bfseries
到,\bf
我只会得到具有正确章节号大小的粗体文本;如果我仅使用,\sc
我也会得到正确的章节号大小,但不是粗体。
我有一个解决方案:
% THESE TWO LINES HAVE A TWISTED HACK
\renewcommand\cftchappresnum{\fontsize{17}{12}\selectfont}
\renewcommand\cftchapaftersnum{\fontsize{10}{12}\selectfont.}
但看起来,它看起来是可以接受的。
如果您知道为什么会发生这种情况,以及如何解决它,我将非常高兴。
答案1
正如 David Carlisle 指出的那样,\sc
忽略了字体系列。使用\scshape
需要具有该功能的字体,这是我使用 FontForge 时做的事情。
我的主要问题是如何正确配置字体。这是对我有用的结果:
\newfontface\Verdana{Verdana1}[
Path=fonts/,
Extension=.ttf,
BoldFont=Verdana1b,
BoldFeatures = {Letters=SmallCaps},
]
\usepackage[titles]{tocloft}
\renewcommand\cftchapfont{\normalfont\fontsize{10}{12}\Verdana\selectfont\bfseries\scshape\expandafter}
因此,Verdana1b.ttf
具有带有小型大写的粗体字体,但似乎如果我没有在其功能中指定小型大写字母的存在,它将不会被加载。