与英文习惯不同,中文排版一般没有粗体的概念,而是用宋体、黑体、楷体、仿宋等不同的字体来加强文本效果。在CJK默认的字体定义文件中,宋体对应的粗体是用\CJKbold命令通过微小平移字形来实现的,不仅放大后能看到锯齿,而且也不符合中文的排版习惯。建议将宋体对应的粗体设为黑体,这样文中所有粗体命令作用的环境中加粗的宋体都会自动变成黑体,不需要再用\CJKfamily{hei}来转换。
宋体的字体定义文件C19song.fd里典型的一段代码如下
\DeclareFontFamily{C19}{song}{}
\DeclareFontShape{C19}{song}{m}{n}{<-> CJK * gbksong}{}
\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbksong}{\CJKbold}
\DeclareFontShape{C19}{song}{m}{it}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{it}{<-> CJKb * gbksongsl}{\CJKbold}
\DeclareFontShape{C19}{song}{m}{sl}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * gbksongsl}{\CJKbold}
这里
C19代表GBK字符集的编码方式
m表示字符的粗细程度和宽紧程度均为中等(medium)
bx表示字符的属性为粗(bold)和松(expanded)
n, it和sl分别表示正常直立体(normal), 意大利斜体(italic)和机械斜体(slanted)
\DeclareFontShape的最后两个参数分别是字体定义和命令序列。
显然,上述语句将宋体的粗体定义为用\CJKbold生成。要将其改为黑体,只需将这段代码改为
\DeclareFontFamily{C19}{song}{}
\DeclareFontShape{C19}{song}{m}{n}{<-> CJK * gbksong}{}
\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbkhei}{}
\DeclareFontShape{C19}{song}{m}{it}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{it}{<-> CJKb * gbkheisl}{}
\DeclareFontShape{C19}{song}{m}{sl}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * gbkheisl}{}
|