打印

conner:请问你用的其他补丁是什么?

如果没有记错,关闭AA後,同样会读取点阵字.

当同时启用 AA 和 embededbitmap时,是可以优先读取点阵字.不过当斜,粗体时,会以AA 效果来显示,会否感觉有点怪呢?

不过,你可以在 fonts.conf 里设定当字体小於某个 (数值) 便关闭AA,而当字体大於某个 (数值) 便启用AA .
详细可参考
http://www.acad.polyu.edu.hk/~lbdennis/hifi/patch/fontconfig-2.2.1/local.conf

TOP

关闭AA后,的确是以点阵字显示的(小字体)。开启AA和embeddedbitmap后,小字体的粗体感觉仍然是以点阵来显示,但斜体明显就不是了。这个好像是akito的补丁中对点阵字的粗体与斜体的处理不同吧?

TOP

对呀!

我想你应该知道中文字体只有一种型态(style),点阵字更加只在某些大小才有.(size)
所以斜,粗体都需要模拟出来.xft patch 只负责都需要模拟粗体.
模拟斜体方面我也不清楚是那个负责.

不过你在启用AA和embededbitmap时,希望有点阵斜体,(应该说是不平滑化) ,你可以在fonts.conf指定当simsun斜体时,便关闭AA.

[code:1]       
<match target="font">
  <edit name="embeddedbitmap" mode="assign">
    <bool>t</bool>
  </edit>
</match>

<match target="font">
                <test name="family">
                        <string>SimSun</string>
                        <string>NSimSun</string>
                        <string>MingLiU</string>
                        <string>PMingLiU</string>
                        <string>Tahoma</string>
                        <string>新細明體</string>
                        <string>細明體</string>
                        <string>新宋体</string>
                        <string>宋体</string>
                </test>

                <test target="pattern" name="slant">
                        <const>italic</const>
                </test>

   <edit name="antialias" mode="assign">
      <bool>f</bool>
   </edit>
</match>
[/code:1]

但是我觉得有点儿多此一举,倒不如将全部关闭AA.

如有说错,请前辈指点 !

TOP

英文大字体的AA效果还是不错的,我觉得可以打开。但中文字就惨不忍睹。我想原因可能是freetype自从采用了那个slight hinting的patch以后,字体的边缘就至少是3个pixel。理想情况应该是先用点阵hint,然后再用FSSA对非垂直边缘进行AA,而不是现在的用点到contour的距离直接判断点的像素深度。
测试签名

TOP

conner说的,我看不懂了……
gackt3541:
其实用到或看到斜体机会比较少,所以斜体是没有什么所谓的。如果要编辑文档,用firefly的OO1.1就好了,斜体、粗体都没有问题,非常好看。呵呵~
所以,我现在决定不关AA了。其实freetype一起用上firefly的gamma补丁和akito的autohint补丁,效果还是不错的。还是qterm图:
附件: 您所在的用户组无法下载或查看附件

TOP

嗯,效果很不错。我想可以修改fonts.conf,让小字体英文采用bytecode渲染,中文用内嵌点阵。大字体或者AA打开autohint,这样就完美了。
测试签名

TOP

如何修改?我对fontconfig的配置文件用到的配置参数一窍不通。

另外问一句题外话:我的gnome与kde同样字号,但显示大小不同。这个应该dpi的问题吧?如何调整?谢谢!

TOP

请问 conner,如何让小字体英文采用 bytecode 渲染呢?

TOP

首先在编译的时候打开bytecode。那么默认下用的就是bytecode, autohint就没用了。但有一个选项可以将autohint打开,就是在fonts.conf里面assign autohint为true。具体等我实验以后再上传给大家讨论讨论。
测试签名

TOP

[code:1]
        <match target="pattern">
                 <edit name="dpi" mode="assign"><double>96</double></edit>
        </match>
[/code:1]

如果没有记错,BYTECODE INTERPRETER 只对映hinting(normal hinter).
如果你只使用 autohint(auto-hinter),可以不用启用 BYTECODE INTERPRETER.

TOP

我的X启动的log中显示dpi为(75,75),而gnome的字体设置中,dpi是96,kde中不知哪里可以看到?还是kde使用的dpi就是X所设定的?

TOP

um...
我没有用 KDE,或者你尝试加入以上代码,看看有没有什麽改善.
如果问题依旧存在,请贴上相关图片.

TOP