打印字体配置文件
conTeXt 使用以下方式定义字体:
- \definefont %使用此命令定义字体。这三句可以写在一行
- [Song] %第一个参数为字体别名
- [{
name
:Adobe Song Std*zh} at 14pt] %字体定义:使用14号的 Adobe 中文宋体- %
name
使用字体名称;file
使用字体文件- \starttext
- \Song 我使用的是 Adobe 宋体 %使用字体别名指定该行体样式
- \stoptext
使用这种方式指定字体比较繁琐,推荐建立一个打印字体配置文件(typescript
),如 zhfonts.tex
(如何使用 zhfonts.tex
参阅“字体设置”一节)
.tex
源文件中使用以下命令定义字体:
- \usetypescriptfile[
zhfonts
] %加载打印字体配置文件zhfonts.tex
- \usetypescript[myscript] %使用打印字体配置文件中定义打印字体的脚本
myscript
- \setupbodyfont[myfont,ss,11pt] %使用脚本预定义的
myfont
字体: 字型为ss
,大小为 11pt
通常有三种字型的字体:衬线、非衬线、等宽,衬线字型笔划起始和结束的地方有一些修饰,非衬线字体笔划为无修饰的线条,等宽字体所有的字符宽度相同
而一种字体,无论属于何种字型,都可能有几种样式,例如:普通、粗体、斜体、斜粗体
我们在打印字体配置文件中,首先定义字型,然后为每种字型定义样式。
在 zhfonts.tex
文件中定义打印字体 myfont
的字型:
- \starttypescript[
myscript
] %定义打印字体的脚本为myscritp
- \definetypeface[myfont][ss][sans][zhfont] %将
myfont
的字型ss
定义为[sans][zhfont]
(非衬线)- \stoptypescript %结束定义
[sans][zhfont]
为非衬线字型,给它指定各种样式,在上面定义之前写入以下配置:
- \starttypescript [sans][zhfont] %定义字型
[sans][zhfont]
- \definefontsynonym %此命令定义字体别名
- %定义该字型的普通样式
[Sans]
为[ZhSans]
,备用字体为 [fallbacks=WesternSans]- [Sans][ZhSans][fallbacks=WesternSans]
- \definefontsynonym
- %定义该字型的粗体样式
[SansBold]
为[ZhSansBold]
,备用字体为 [fallbacks=WesternSansBold]- [SansBold][ZhSansBold][fallbacks=WesternSansBold]
- \definefontsynonym
- %定义斜体
- [SansItalic][ZhSansItalic][fallbacks=WesternSansItalic]
- \definefontsynonym
- %定义斜粗体
- [SansBoldItalic][ZhSansBoldItalic][fallbacks=WesternSansBoldItalic]
- \stoptypescript
上一步定义使用别名定义别名,写起来比较麻烦,但是却可以选择备用字体。接下来将各种样式定义为实际的字体:
- \starttypescript [sans][zhfont]
- %定义四种样式实际使用的字体
- %
name
使用字体名称;file
使用字体文件- %
[features=zh]
字体使用zh
属性,还未定义- \definefontsynonym
- [ZhSans][name:AdobeKaitiStd-Regular][features=zh]
- \definefontsynonym
- [ZhSansBold][name:AdobeHeitiStd-Regular][features=zh]
- \definefontsynonym
- [ZhSansItalic][name:AdobeKaitiStd-Regular][features=zh]
- \definefontsynonym
- [ZhSansBoldItalic][name:AdobeHeitiStd-Regular][features=zh]
- %定义备用字体的四种样式
- \definefontfallback
- [WesternSans][name:TeXGyreAdventor-Regular][0x0000-0x0400][force=yes]
- \definefontfallback
- [WesternSansBold][name:TeXGyreAdventor-Bold][0x0000-0x0400][force=yes]
- \definefontfallback
- [WesternSansItalic][name:TeXGyreAdventor-Italic][0x0000-0x0400][force=yes]
- \definefontfallback
- [WesternSansBoldItalic][name:TeXGyreAdventor-BoldItalic][0x0000-0x0400][force=yes]
- \definefontsynonym
- [Sans][ZhSans][fallbacks=WesternSans]
- \definefontsynonym
- [SansBold][ZhSansBold][fallbacks=WesternSansBold]
- \definefontsynonym
- [SansItalic][ZhSansItalic][fallbacks=WesternSansItalic]
- \definefontsynonym
- [SansBoldItalic][ZhSansBoldItalic][fallbacks=WesternSansBoldItalic]
- \stoptypescript
最后,定义字体属性 zh
\definefontfeature[zh][mode=node,script=hang,lang=zhs]
完整的 zhfonts.tex
文件,参阅“字体设置”一节