2009年2月14日星期六

Linux下字体美化中的字体优先级设置

http://ncforest.blog.163.com/blog/static/2956266420086191610684/
下面是从网上摘抄的:
Xft 是一个library,它没有自已的配置机制,它依靠fontconfig库来配置和定制字体,Xft负责字体的显示。也就是说, fontconfig是一种让X系统可以找到某种字体的库,而Xft是负责在X系统中把fontconfig库找到的字体如何显示出来的库。所以讨论 Xft字体配置其实就是讨论fontconfig。fontconfig包含在XFree86发布版中。
        fontconfig的作用:自动搜索字体路径,发现新拷贝的字体;当需显示的字体不存在时,会自动选择其它字体代替显示。这也就是我们在美化字体时为什么要调整字体的排列顺序的原因;配合Xft等X系统的渲染引擎,实现质量的字体输出。
        fontconfig 的配置文件有三个,一个是系统级的配置文件,位于/etc/fonts/fonts.conf,该目录下还有一个 local.conf,一般我们只修改local.conf文件,fonts.conf一般不建议去修改,不过fontconfig2.3以上版本已经取 消掉了local.conf,系统级的配置全部是fonts.conf文件,并且2.3版的fontconfig已经进入Sarge。第三个配置文件是用 户主目录下的 ~/.fonts.conf,它是用户级的字体配置文件,只对当前用户有效。这三个文件的格式是一样的,都是一个XML格式的文件。该XML文件的语法规 则在fonts.dtd里定义。详细的配置介绍请参考中国Linux公社中的"Linux高质量字体研究"论坛。
        在Xft字体系统中安装新的字体是很简单的,只需把字体文件拷贝到fonts.conf中指定的字体文件目录即可,fontconfig会自动感知新字体。默认的字体目录有四个,分别是:
        /usr/share/fonts
        /usr/X11R6/lib/X11/fonts/Type1
        /usr/local/share/fonts
        ~/.fonts
        当然也能增加其他目录,只要手动修改/etc/X11/fs/config文件,给其中catalogue那一行最后加上你的字体路径就可以了。
        把新字体文件拷贝到字体目录后,我们就可用fc-list命令列出新安装的字体,如果没有,可用fc-cache命令手动更新系统字体配置。这样,再运行 fc-list就应该可以看到新安装的字体了。使用Xft字体系统是不用配置/etc/X11/XF86config-4的,也不用重启X服务器使配置生 效。Xft字体系统比起传统的X11核心字体系统来说真的是方便很多。所以它是未来的发展方向。

好了,因此我们在Linux下美化字体时可以通过修改~/.fonts.conf来修改字体优先级给来配置字体,合理修改字体优先顺序,可以更好地实现字体表现。
无 论是安装文泉驿,还是安装windows字体,都可以设置它们的优先级。而系统字体中依然使用sans serif或者serif、monospace的名称。这些字体是虚拟字体,实际上是一个字体族,它们会调用实际的字体。因此通过修 改.fonts.conf,可以使用sans serif等来使用文泉驿或者宋体。
比如,下面是网上摘录的一个配置文件,可以根据自己需要进行修改。这个示例使用文泉驿,先安装文泉驿,然后再使用该字体配置文件。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>

<alias>
        <family>serif</family>
        <prefer>
                <family>DejaVu Serif</family>
                <family>WenQuanYi Bitmap Song</family>
                <family>AR PL ShanHeiSun Uni</family>
                <family>Times New Roman</family>
                <family>Times</family>
                <family>Luxi Serif</family>
                <family>AR PL SungtiL GB</family>
                <family>AR PL Mingti2L Big5</family>
                <family>Ming(ISO10646)</family>
                <family>Kochi Mincho</family>
                <family>Baekmuk Batung</family>
        </prefer>
</alias>
      
<alias>
        <family>sans-serif</family>
        <prefer>
                <family>DejaVu Sans</family>
                <family>WenQuanYi Bitmap Song</family>
                <family>AR PL ShanHeiSun Uni</family>
                <family>Arial</family>
                <family>Verdana</family>
                <family>Helvetica</family>
                <family>Luxi Serif</family>
                <family>Ming(ISO10646)</family>
                <family>AR PL kaitiM GB</family>
                <family>AR PL kaitiM Big5</family>
                <family>Kochi Gothic</family>
                <family>Baekmuk Dotum</family>
        </prefer>
</alias>
<alias>
        <family>monospace</family>
        <prefer>
                <family>DejaVu Sans Mono</family>
                <family>WenQuanYi Bitmap Song</family>
                <family>AR PL ShanHeiSun Uni</family>
                <family>Arial</family>
                <family>Verdana</family>
                <family>Helvetica</family>
                <family>Luxi Serif</family>
                <family>Ming(ISO10646)</family>
                <family>AR PL kaitiM GB</family>
                <family>AR PL kaitiM Big5</family>
                <family>Kochi Gothic</family>
                <family>Baekmuk Dotum</family>
        </prefer>
</alias>

</fontconfig>


没有评论: