调教fonts.conf的过程

继续说字体渲染的事。在Unix下使用Xorg和FreeType时,可能要花一些时间来调教一下,方能得到一个可以接受的结果。这也是使用Windows和Mac OS X的用户几乎不用关心的事情。

在fonts.conf的调教过程中一定要清楚的知道自己想要的效果,并且对字体渲染过程要有一个简单的了解,否则还是照着别人的抄一份吧。

对于中文用户来说首要的问题应该是字体的fallback,所以应该安装一些中文的字体,比如x11-fonts/wqy

然后再来看这些字体的优先级别。默认到底是宋体、黑体还是圆体都想根据自己的喜好来设定一下。我这里就选了文泉驿的米黑。不过这里应该多说一句的是要区别Sans, Serif和Monospace这几个字体类型。

然后再来看Hinting的设定,默认使用的HintStyle是什么。

  • hintnone: 就是不改变字体设计的做法,但是对有些TTF字体要注意一下,应该打开一些TTF的auto-hinting设定。
  • hintslight: 一般而言对字体的hinting是基于x轴和y轴的,但是slight设定只会对y轴做hinting。
  • hintmedium和hintfull是更加激进的两种设定,对于屏幕文字的可辩识程度是增加了。但是我并不喜欢这个设定,也许Windows的用户会喜欢这两种设定。要特别注意的是微软出品的一些TTF字体是很依赖hinting技术的,所以对微软出品的字体最好是设置为hintfull。

这个设置就涉及到Joel谈到的Mac风格和Windows风格的问题,习惯Windows的用户大可设置为medium和full,而Mac用户应该会喜欢none或slight。

调教的过程会设置Sub-pixel Rendering,在fonts.conf里就是rgba的设置。~~某些字体应该是不适合开Sub-pixel的,比如文泉驿的米黑就属于这一类。这样的字型要是开了Sub-pixel,看起来就像是加了个有颜色的边,而且不是每个边都有。所以对于这样的字体开GrayScale Anti-aliasing就可以了。~~GrayScale和Sub-pixel Rendering要干的事情基本一样,就我个人而言我比较喜欢用Anti-Aliasing。,但是效果是不同的,我在Mac OS X上做了测试,在开启Sub-Pixel Rendering的情况下字体明显要比GrayScale的清晰,但是我在FreeBSD下的设置很是不尽人意,字体边上的颜色太明显了,反而有一种炫目的感觉,这可能就是之前我不喜欢Sub-Pixel Rendering的原因吧。总之在对比之后,只能退而求其次,只使用GrayScale了。

如此看来,调教fonts.conf的过程是比较麻烦的,因为对不同的字体要进行不同的处理。所以呢,我偷懒从别人那个抄了一个,再改一改就开始用了,现在基本满意。另外呢,听说Apple关于字体渲染的算法专利已经过期了,并且之前的那个FreeType分支也合并了,Unix屁民们使用上Mac级别的字体渲染,也为期不远了。

update: 和@jjgod聊天之后,我在Mac下对比了下GrayScale和Sub-Pixel Rendering的差别,在LCD下应该开启Sub-Pixel Rendering,但目前我的设定似乎没有达到预期的效果,所以先使GrayScale,等看完了那些鬼佬们写的文案再来调整吧,理论知识的不足,就是盲目啊。

Links:


Last modified on 2010-08-11