首先安装infinality,在AUR中:yaourt -S freetype2-infinality fontconfig-infinality 。如果是64位,还有lib32-freetype2-infinality。至于可选依赖libxft-lcd,现在这包已经从AUR中删除了,我试过影响不大。可以考虑采用libxft-ubuntu和cairo-ubuntu,这个cairo-ubuntu还有一个好处:已经打好了遵循全局字体设置的补丁,不会出现像自由建客所说的gtk程序不听话的问题。注意:cairo这个部件如果不熟悉不要轻易修改代码与动编译选项!别的出错至多字体显示问题,cairo能使整个桌面环境无法显示!
然后是设置。infanality的新版本采用了有别于全局的设置方式:一切设置都在/etc/fonts/infinality中,原本的/etc/fonts中的设置不再有效(除了一个例外:local.conf,但是新版infinality已经不需要这个文件,这点wiki上有误导)。infinality提供了一些预设制,有:debug(如其名)、infinality、linux、osx、osx2(苹果风格)、win7、win98、winxp。如果想使用苹果或windows的风格,请安装相应字体,并确保你取得了对应的字体授权。我们这里以linux为例。infinality的默认设置没有考虑到中文,所以我们要做些修改。
首先,进入/etc/fonts/infinality/styles.conf.avail中,你能看到以上的预设风格。我们先把linux设置复制一份(以下所有操作均需root权限):
代码: 全选
mkdir linux-zh
cp linux/* linux-zh
代码: 全选
…………
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>WenQuanYi Micro Hei</family>
</prefer>
</alias>
…………
然后跳过一些文件(当然你有兴趣也可以进去看看),我们直奔显示设置:
50-base-rendering-inf-osx-lin.conf 此文件是默认的渲染方式,默认的设置也不错了。不建议修改这个文件,主要是设置会被后面的两个61文件覆盖,只对两个60中没列出的少量字体有效。
60、61分别定义了truetype字体、非truetype字体的渲染。为了让中文更好显示,我们也仿照他来一份:
代码: 全选
cp 60-group-non-tt-fonts.conf 62-group-chinese-fonts.conf
cp 61-group-non-tt-rendering-inf-7-xp-lin.conf 63-group-chinese-fonts-rendering.conf
修改62-group-chinese-fonts.conf,里面依样画葫芦就行,放入中文字体,比如我的:
代码: 全选
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font">
<test name="force_autohint">
<bool>false</bool>
</test>
<test name="family">
<string>WenQuanYi Micro Hei</string>
<string>WenQuanYi Micro Hei Light</string>
<string>WenQuanYi Micro Hei Mono</string>
<string>WenQuanYi Micro Hei Mono Light</string>
<string>WenQuanYi Zen Hei</string>
<string>WenQuanYi Zen Hei Mono</string>
</test>
<edit name="font_type" mode="assign">
<string>Chinese Font</string>
</edit>
</match>
</fontconfig>
代码: 全选
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- ##Style: linux -zh-->
<match target="font">
<test name="font_type">
<string>Chinese Font</string>
</test>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign">
<const>hintslight</const>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>
最后,到/etc/fonts/infinality中运行
代码: 全选
infctl.sh setstyle
总结:infinality还有好多设置我们没有涉及,有兴趣的可以自己看。我尝试发现,infinality下,文泉驿微米黑的显示效果很不错,完胜微软雅黑。另有一套ttf-dejavusans-yuanti,也很漂亮,但是由于版权问题,我不多说了。如果你的系统中还有别的中文字体,也可以加到62-group-chinese-fonts.conf中,在20-aliases-default-linux.conf设置默认字体。