我正在使用自定义打字稿(之后帮助解决这个问题),其中包括(除其他外)两个额外重量,中等的和半粗体以及它们的大小修饰符(例如\tfa
等\tfb
)。由于自定义粗细,我为半粗体斜体、中等斜体等(\sbi
以及\mdi
等)创建了自定义宏,因为\em
自定义粗细中不会交替使用常规/斜体。
然后我在带有大小修饰符(全局配置)的头部中使用半粗体,并且这些头部在 TOC 中采用独立样式(常规粗细),其工作符合预期。但\sbi
当我在特定头部中使用自定义宏时,它会按正文大小排版,而不是按头部大小排版(例如\sbic
)。并且在目录中,它会变成半粗斜体,而不是常规斜体。更糟糕的是,如果我在特定头部(例如\sbic
)中使用带大小修饰符的半粗斜体,它会在目录中获得相同的大小。
问题:有没有办法完全独立地设置文档和目录中的标题样式?有两种可能:
- 在 TOC 中,完全删除任何特定样式/重量的头部(可接受)
- 根据周围的粗细,在文档和目录中正确地在常规和斜体之间交替(在我的例子中,文本中使用半粗体,目录中使用常规体)
我的打字稿(摘录):
\definebodyfont [default] [rm]
[tf=Serif sa 1,
bf=SerifBold sa 1,
it=SerifItalic sa 1,
% ...
mdf=SerifMedium sa 1,
mif=SerifMediumItalic sa 1,
msf=SerifMediumSlanted sa 1,
% ...
sbf=SerifSemibold sa 1,
sbi=SerifSemiboldItalic sa 1,
sbs=SerifSemiboldSlanted sa 1,
% ...
sbfb=SerifSemibold sa 1.440,
sbfc=SerifSemibold sa 1.728,
% ...
sbib=SerifSemiboldItalic sa 1.440,
sbic=SerifSemiboldItalic sa 1.728,
% ...
]
我的文件(摘录):
\setupbodyfont[garamond-premier, 12pt] % my typescript
\setuphead[chapter] [style={\sbfc}] % heads in document: semibold
\setuphead[section] [style={\sbfb}]
\setupcombinedlist[content][list={chapter, section}]
\setuplist[chapter] [style={\tf}] % heads in TOC: regular
\setuplist[section] [style={\tf}]
\starttext
\completecontent
\chapter[title={A chapter with {\sbic italics}}]
A text
\section[title={A section with {\sbib italics}}]
Another text
\stoptext
结果(目录和文档,摘录。请注意目录中斜体字的粗细和大小不正确):
答案1
您无需为字体添加其他选项,而应为medium
或heavy
粗细创建单独的字体。要访问章节标题和列表条目的额外粗细,您可以使用命令切换到不同的字体\switchtobodyfont
。
\setupbodyfont
[antykwapoltawskiego]
\setuphead
[chapter]
[page=no,
style={\switchtobodyfont[antykwapoltawskiego-light]\bfb}]
\setuplist
[chapter]
[style={\switchtobodyfont[antykwapoltawskiego-light]\bf}]
\setuppapersize [A5]
\starttext
\completecontent
\chapter{Weisman}
\samplefile{weisman}
\chapter{Ward}
\samplefile{ward}
\stoptext
答案2
在我上一篇文章中(您在问题中引用了这篇文章),我犯了一个错误。
字体替代品只能有两个字母,因为 ConTeXt 将使用它后面的任何内容作为大小说明符,就像
b
中的一样\tfb
。
此外,在指定字体选项之前,您实际上必须定义它们。下面的代码纠正了所有这些问题。要使字体切换不显示在目录中,您可以使用 指定替代文本list
。我还建议使用\start...\stop
所有命令的对。
\loadtypescriptfile[garamond-premier]
\definefontalternative[mf]
\definefontalternative[mi]
\definefontalternative[ms]
\definefontalternative[sf]
\definefontalternative[si]
\definefontalternative[ss]
\definebodyfont [default] [rm]
[tf=Serif sa 1,
bf=SerifBold sa 1,
it=SerifItalic sa 1,
sl=SerifSlanted sa 1,
bi=SerifBoldItalic sa 1,
bs=SerifBoldSlanted sa 1,
sc=SerifCaps sa 1,
%
mf=SerifMedium sa 1,
mi=SerifMediumItalic sa 1,
ms=SerifMediumSlanted sa 1,
%
sf=SerifSemibold sa 1,
si=SerifSemiboldItalic sa 1,
ss=SerifSemiboldSlanted sa 1]
\stoptypescript
\setupbodyfont[garamond-premier]
\setuphead[chapter] [style={\sfc}] % heads in document: semibold
\setuphead[section] [style={\sfb}]
\setupcombinedlist[content][list={chapter, section}]
\setuplist[chapter] [style={\tf}] % heads in TOC: regular
\setuplist[section] [style={\tf}]
\starttext
\completecontent
\startchapter
[title={A chapter with {\si italics}},
list={A chapter with italics}]
A text
\startsection
[title={A section with {\si italics}},
list={A section with italics}]
Another text
\stopsection
\stopchapter
\stoptext