« 完美的幸福 | 主 页 | 超越机制 »

Linux/Xorg上的字体微调


07/17/07。  cathayan.org版权所有,保留一切权利。转载请保留此说明。谢绝商业转载。

刚才查Firefox用Pango的问题,想把这个去掉,不小心看到个西文用户说,Linux上的字体还是个噩梦 :P 其实他那里不过是因为开启了Pango支持而把MathML搞乱了一类的错误,要他碰到破碎的中文字或者一个页面上根本不显示中文,只显示西文,只怕就要疯掉了。

说实话,现在X上处理字体已经是大大地进步,也就是这4、5年的时间,freetype/xft这套技术发展起来,对字体的支持程度和效果基本接近Windows了。但是同样的,为了得到较好的效果,克服一些小bug,还是要自己动手调不少东西。

好在网上已经有人总结了“字体配置-local.conf详解”,还有“Linux字体微调-Windows效果篇”这样的详细文章,前者全面清晰又简单,很实用,后者可以在有兴趣有时间时慢慢琢磨──连设置显示dpi都算上了,还列出微软对不同字体不同字号下的设置,可以一对一地把字体调到Windows的效果──微软开发软件的价值啊!

这回我加的是替换Simsun字体中的英文,因为指定用宋体的时候,其中的英文会在加粗时显示极为破碎,这方面Windows显示效果好很多;另外加上了分自由字体和微软字体来分别设置hint的方法,效果确实不错。宋体英文破碎的效果可以用前一篇freebsdchina论坛的页面来检查,或者看水木的版面文章列表也可以。

最后给常用的关闭宋体某些字号的AntiAlias语法补了一点,就是在粗体时继续保留AA,这样粗体的效果要好一点;当Firefox使用Pango时,保留粗体的AA也会在几个字号上采用内嵌的点阵,而关闭Pango时,则不论什么字号的粗体都不用点阵。这是在Debian sid的Iceweasel上观察到的。

有些情况下Firefox使用Pango会有问题,比如上面说的MathML,或者是以前有过的显示速度慢等等,这时可以在~/.mozilla/firefox目录下建立一个文件,名为rc,其中写上这一行:MOZ_DISABLE_PANGO=1.

只对正常字体关闭AA,而对粗体继续AA的方法:

 1 <match target="font">

 2         <test name="family" compare="eq"><string>SimSun</string></test>

 3         <test target="pattern" name="weight" compare="less_eq">

 4                 <const>medium</const>

 5         </test>

 6         <test name="pixelsize" compare="less_eq"><int>19</int></test>

 7         <test name="pixelsize" compare="more_eq"><int>11</int></test>

 8         <edit name="antialias" mode="assign"><bool>false</bool></edit>

 9 </match>



本文的主要目的是推荐那两篇文章。

07/17/07 22:56:29,由cathayan发表。目录:电脑

1条评论

AnThOnYhO:

其实用圆体很不错!是最好的解决办法!
于 07/18/07 13:21:20 发表  

这篇文章已经关闭,不能添加评论和投票
I am watching and will delete all spam.