返回列表

[转]中文加粗自动变黑体

与英文习惯不同,中文排版一般没有粗体的概念,而是用宋体、黑体、楷体、仿宋等不同的字体来加强文本效果。在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}{}
基本信息:kuing,GG,19880618~?,地道广州人,高中毕业,无业游民,不等式爱好者,论坛混混;
现状:冇钱又冇样、冇型又冇款、冇身材又冇文采、冇学历又冇能力、冇高度冇速度冇力度兼夹冇野做!(粤语)

又或者改成

\DeclareFontFamily{C19}{song}{}
\DeclareFontShape{C19}{song}{m}{n}{<-> CJK * gbksong}{}
\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbkhei}{}
\DeclareFontShape{C19}{song}{m}{it}{<-> CJK * gbkkai}{}
\DeclareFontShape{C19}{song}{bx}{it}{<-> CJKb * gbkkai}{}
\DeclareFontShape{C19}{song}{m}{sl}{<-> CJK * gbkkai}{}
\DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * gbkkai}{}

即:普通宋体不变,粗宋体变黑体,其它宋体斜体都变楷书

这个应该更标准点
基本信息:kuing,GG,19880618~?,地道广州人,高中毕业,无业游民,不等式爱好者,论坛混混;
现状:冇钱又冇样、冇型又冇款、冇身材又冇文采、冇学历又冇能力、冇高度冇速度冇力度兼夹冇野做!(粤语)

返回列表