本文使用了STHeiti作为演示,大家还是使用开源字体哟。^.^
1.安装字体
根据/etc/fonts/fonts.conf,默认的字体文件存放在如下几个位置:
代码:
<dir>/usr/share/fonts</dir>
<dir>/usr/share/X11/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir>~/.fonts</dir>
先在/usr/share/fonts/truetype目录下创建一个存放中文字体的文件夹zh_CN
然后我这里把STHeiti.ttf字体文件拷贝到/usr/share/fonts/truetype/zh_CN
执行sudo fc-cache -f -v用来刷新字体缓存文件
代码:
sudo fc-cache -f -v
代码:
kyle@linux:~$ fc-list | grep STHeiti
STHeiti:style=Regula
如果返回STHeiti:style=Regula则表示系统已经认识你安装的字体了
2.修改如何让系统自动选择合适的字体
代码:
kyle@linux:/etc/fonts$ ls -la
总用量 40
drwxr-xr-x 4 root root 4096 2008-08-24 00:09 .
drwxr-xr-x 123 root root 12288 2008-08-25 17:23 ..
drwxr-xr-x 2 root root 4096 2008-08-24 18:22 conf.avail
drwxr-xr-x 2 root root 4096 2008-08-24 17:29 conf.d
-rw-r--r-- 1 root root 5283 2008-02-29 01:22 fonts.conf
-rw-r--r-- 1 root root 6961 2008-02-29 01:22 fonts.dtd
注:字体的配置文件通常都放在/usr/etc/fonts/conf.d目录中,ubuntu中该目录中的文件都链接到了/usr/etc/fonts/conf.avail目录中的文件。
代码:
kyle@linux:/etc/fonts/conf.avail$ less README
00 through 09 Font directories
10 through 19 system rendering defaults (AA, etc)
20 through 29 font rendering options
30 through 39 family substitution
40 through 49 generic identification, map family->generic
50 through 59 alternate config file loading
60 through 69 generic aliases, map generic->family
70 through 79 select font (adjust which fonts are available)
80 through 89 match target="scan" (modify scanned patterns)
90 through 99 font synthesis
该README文件详细说明了存放在/usr/etc/fonts/conf.avail目录中的文件的作用
由于我的locale所zh_CN.UTF-8所以系统使用的所69-language-selector-zh-cn.conf这个文件
代码:
kyle@linux:/etc/fonts/conf.avail$ sudo gedit 69-language-selector-zh-cn.conf
注:在西方国家罗马字体正营中,字体分为两大种类:Sans Serif和Serif,打字机体虽然也属于 Sans Serif,但由于是等宽字体,所以另外独立出 Monospace这一种类,例如在Web中,表示代码时常常要使用等宽字体,在终端中也通常使用该字体。Serif的意思是,在字的笔画开始及結束的地方有额外的装饰,而且笔画的粗细会因直橫的不同而有不同。相反的,Sans Serif则沒有这些额外的装饰,笔画粗细大致差不多。
实际的应用:Serif的字体容易辨认,因此易读性较高。反之Sans Serif则教醒目。像宣传品、海报类,为求醒目,它的短篇的段落也会采用Sans Serif字体。但在书籍、报刊杂志,正文有相当篇幅的情形下,则应采用Serif字体来减轻读者阅读上的负担。^.^
这里是69-language-selector-zh-cn.conf文件中关于serif的字体选择配置
代码:
<match target="pattern">
<test qual="any" name="family">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>STHeiti</string>
<string>AR PL UMing CN</string>
<string>AR PL ShanHeiSun Uni</string>
<string>WenQuanYi Bitmap Song</string>
<string>Bitstream Vera Serif</string>
<string>DejaVu Serif</string>
<string>AR PL UKai CN</string>
<string>AR PL ZenKai Uni</string>
</edit>
</match>
ubuntu中默认的中文字体是AR PL UMing CN,为了让serif在显示中文的时候首先使用STHeiti,我们在<string>AR PL UMing CN</string>的上面加上<string>STHeiti</string>,意思就所说serif类的字体首先使用STHeiti这个字体来显示,如果该字体不存在,则再用AR PL UMing CN字体显示,如果碰到英文字体,则使用排在后面的Bitstream Vera Serif字体来显示。
同理,再在sans-serif部分的第一行加上<string>STHeiti</string>
在monospace部分,因为大部分终端都使用英文,所以我在<string>Bitstream Vera Sans Mono</string>后面加上<string>STHeiti</string>,这样先使用Bitstream Vera Sans Mono来显示英文,再用STHeiti显示中文了
修改该文件后,保存
最后,注销,再登录,你就可以看到配置好的字体效果了。