文泉驿字体做得确实很漂亮,而且还是开源的,因此对于系统字体的美化我选择了文泉驿。可是有时在和其他人交 流文档时又不得不用MS的字体。在机器上装了MS字体之后,字体平滑问题一直很令我头痛,尤其在看一些网页时,整个网页一片模糊,如新华网。关闭了平滑之 后,当字很小时又是一堆在一处,而且英文字体很难看。在Ubuntu 5.10时这个问题基本上得到了解决,而到了6.06使用以前的设置方法已经不管用了,参考了论坛、Wiki以及网上的一些文章,用了半天时间终于解决了 所有问题。
预期目标:
1、使用文泉驿字体进行系统美化
2、安装MS的宋体(SimSun),宋体-18030(SimSun-18030),黑体(SimHei),楷体_GB2312(KaiTi_2312),仿宋_GB2312(FangSong_GB2312)
3、使用网页设定的字体浏览网页,如新华网一般在页面上规定宋体和楷体
4、在一定范围内关闭字体平滑,超过这个范围时开启平滑
5、解决
5、解决Firefox中文泉驿字体过粗问题
实现步骤:
1、安装文泉驿字体
新装的系统默认是没有安装make的,可以通过sudo apt-get install make来安装
cd ~
mkdir tmp
cd tmp
wget http://ftp.ubuntu.org.cn/wqy/wqy-bitmapfont-bdf-nightly_build.tar.gz
tar zxvf wqy-bitmapfont-bdf-nightly_build.tar.gz
cd wqy-bitmapfont
sudo apt-get install bdftopcf
make
sudo cp *.pcf /usr/share/X11/fonts/misc/

然后进行配置,使系统支持点阵字体
sudo gedit /etc/fonts/conf.d/50-xfonts-wqy.conf

把下面的代码粘贴进去,保存退出
<selectfont>
<acceptfont>
<pattern>
<patelt name="family"><string>WenQuanYi Bitmap Song</string></patelt>
</pattern>
</acceptfont>
</selectfont>
2、安装MS字体
cd /usr/share/fonts
sudo mkdir zh_CN
然后将MS的字体文件复制到zh_CN目录下,然后
cd zh_CN
sudo mkfontscale
sudo mkfontdir
sudo fc-cache

3、修改language-selector.conf文件
sudo cp /usr/share/language-selector/fontconfig/zh_CN /usr/share/language-seletor/fontconfig/zh_CN_backup
sudo gedit /etc/fonts/language-selector.conf
这里和以前发的有一些出入,以前一直备份的是
/etc/fonts/language-selector.conf,而这个文件只是一个链接文件,其指向 /usr/share/language-selector/fontconfig/zh_CN。

使用下面的代码替换掉里面的全部内容
<fontconfig>
    <alias>
                <family>serif</family>
                <prefer>
                        <family>Bitstream Vera Serif</family>
                        <family>DejaVu Serif</family>
                        <family>WenQuanYi Bitmap Song</family>
                        <family>AR PL ShanHeiSun Uni</family>
                        <family>AR PL ZenKai Uni</family>
                </prefer>
        </alias>
        <alias>
                <family>sans-serif</family>
                <prefer>
                        <family>Bitstream Vera Sans</family>
                        <family>WenQuanYi Bitmap Song</family>
                        <family>DejaVu Sans</family>
                        <family>AR PL ShanHeiSun Uni</family>
                        <family>AR PL ZenKai Uni</family>
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>Bitstream Vera Sans Mono</family>
                        <family>DejaVu Sans Mono</family>
                        <family>WenQuanYi Bitmap Song</family>
                        <family>AR PL ShanHeiSun Uni</family>
                         <family>AR PL ZenKai Uni</family>
                </prefer>
        </alias>
        <match target="font" >
                <test name="family" compare="contains" >
                        <string>Song</string>
                        <string>Sun</string>
                        <string>Kai</string>
                        <string>Ming</string>
                </test>
                <test name="weight" compare="less_eq">
                <int>100</int>
                </test>
                <test compare="more_eq" target="pattern" name="weight" >
                        <int>180</int>
                </test>
                <edit mode="assign" name="embolden" >
                        <bool>true</bool>
                </edit>
    </match>
        <match target="font" >
                <test name="family" compare="contains" >
                        <string>Song</string>
                        <string>Sun</string>
                        <string>Kai</string>
                        <string>Ming</string>
                        <string>SimSun</string>
                        <string>SimSun-18030</string>
                        <string>NSimSun</string>
                        <string>NSimSun-18030</string>
                        <string>SimHei</string>
                        <string>KaiTi_GB2312</string>
                        <string>FangSong_GB2312</string>
                        <string>LiSu</string>
                        <string>宋体</string>
                        <string>宋体-18030</string>
                        <string>新宋体</string>
                        <string>新宋体-18030</string>
                        <string>黑体</string>
                        <string>楷体_GB2312</string>
                        <string>仿宋_GB2312</string>
                        <string>隶体</string>
                </test> 
                <edit name="globaladvance">
                        <bool>false</bool>
                </edit>
                <edit name="spacing">
                        <int>0</int>
                </edit>
                <edit name="hinting">
                        <bool>true</bool>
                </edit>
                <edit name="autohint">
                        <bool>false</bool>
                </edit>
                <edit name="antialias" mode="assign">
                        <bool>true</bool>
                </edit>
                <test name="pixelsize" compare="more_eq">
                        <int>12</int>
                </test>
                <test name="pixelsize" compare="less_eq">
                        <int>24</int>
                </test>
                <edit name="antialias" mode="assign" >
                        <bool>false</bool>
                </edit>
        </match>
</fontconfig>

language -selector.conf前一部分为字体渲染顺序,这里把文泉驿字体提到了第二位,优先于原来的ShanHeiSun。中间那部分对字体进行加粗,由 于文泉驿字体已经含粗体,再加粗会出现过粗问题,因此增加了一个条件,即仅在字体中不含粗体时加粗。后一部分设置字体属性,这里将列表中的字体,包括宋体 等设为了在12px~24px之间关闭AA(即平滑效果),超过这个范围开启AA,使得屏幕上的字体更漂亮。需要注意的是,如果系统中不存在第三部分列表 中的字体,会使整个文件失效,系统默认采用fonts.conf进行配置。
注销后重新登陆,就可以看到效果了。


补充一些,我其实并没有那么固执,那个是给那些坚持一些用开源的人看的,自己实际用的时候在开头的monospace段时设的是SimSun比WQY优先,原因是文泉驿是点阵字体,在终端下不能放大,而SimSun作为矢量字体是可以的,在这里也等待着文泉驿点阵字体的到来。
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐