找回密码
 注册
查看: 3340|回复: 27

有关 akito 的 修补档

[复制链接]
发表于 2003-9-29 00:33:08 | 显示全部楼层 |阅读模式
如果各位有留意akito的网站,
http://www.kde.gr.jp/~akito/patch/download.html
可以知道他最近作了一点更新.
特别是今次改变了XFT 的模拟粗体部份,比上一次更好,效果更美.
不过还有一些问题,正在与他联络.
暂时可以看看下图的粗体部份
http://www.acad.polyu.edu.hk/%7Elbdennis/hifi/screenshot/Rh809Screenshot-MozillaFirebird-newXFT.png
发表于 2003-9-29 11:25:55 | 显示全部楼层

Re: 有关 akito 的 修补档

[quote:bb269f8e22="gackt3541"]如果各位有留意akito的网站,
http://www.kde.gr.jp/~akito/patch/download.html
可以知道他最近作了一点更新.
特别是今次改变了XFT 的模拟粗体部份,比上一次更好,效果更美.
不过还有一些问题,正在与他联络.
暂时可以看看下图的粗体部份
http://www.acad.polyu.edu.hk/%7Elbdennis/hifi/screenshot/Rh809Screenshot-MozillaFirebird-newXFT.png[/quote]
freetype-2.1.5还需要使用firefly的补丁么?单用akito的补丁是否还要对xft2和fontconfig 打补丁?
看不懂日文赫赫。
回复

使用道具 举报

 楼主| 发表于 2003-9-29 14:51:14 | 显示全部楼层
其实在freetype 2.1.5发布时,已经说明预值并没有启动
BYTECODE_INTERPRETER.
-------------------------------------------------------------------------------
2003-09-02  David Turner  <[email protected]>

        * include/freetype/config/ftoption.h: commenting out the
        macro TT_CONFIG_OPTION_BYTECODE_INTERPRETER so that package
        managers that define it with additionnal compilation command line
        options (e.g. with -DTT_CONFIG_OPTION_BYTECODE_INTERPRETER) still
        work correctly.

        Also added a note to indicate that TT_CONFIG_OPTION_UNPATENTED_HINTING
        doesn't work as advertised yet
-----------------------------------------------------------------------------------
你可以自行选择是否启动BYTECODE_INTERPRETER.

akito 的补丁需要一同打上.(fontconfig,xft,freetype)
不过因为还有一些问题,所以仍在测试中.
回复

使用道具 举报

发表于 2003-9-30 02:13:17 | 显示全部楼层
我不是很在意粗体部分
但是就我的使用而言,这个patch的效果很不怎么样,中文字体偏淡
特别是常用的SinSun/NSimSun字体
另外qt的字型替代/管理部分有bug
回复

使用道具 举报

发表于 2003-9-30 15:58:45 | 显示全部楼层
[quote:1a2205a29a="lucida"]我不是很在意粗体部分
但是就我的使用而言,这个patch的效果很不怎么样,中文字体偏淡
特别是常用的SinSun/NSimSun字体
另外qt的字型替代/管理部分有bug[/quote]
是有BUG,就是无法找到CJK字体的英文名称,
放假这段时间偶研究一下。
回复

使用道具 举报

 楼主| 发表于 2003-10-1 19:07:16 | 显示全部楼层
>>就是无法找到CJK字体的英文名称, <<
我可以的,没有问题,可以显示中英文字体名称.
是否编译设定的问题?
有没有加入 -xft ?
我使用
xft-2.1.1
qt-3.2.1
akito 的 补丁.
QT 预设会读取 XLFD 的字体路径,其後才读取fontconfig的字体路径.
其实可以让QT 放弃读取 XLFD 的字体路径.
不过akito那儿没有提供.


>>另外qt的字型替代/管理部分有bug<<
对,这个问题一直都没有解决.
(我估计) 因为他们不需要使用(繁,简),所以没有发现这个问题.
(我想)大家都知道有很多日本人都不懂英文.所以他们只需要解决日文方面的问题就可以了.

希望迟些与akito联络时,再提出以上问题.
回复

使用道具 举报

 楼主| 发表于 2003-10-1 19:21:26 | 显示全部楼层
>>但是就我的使用而言,这个patch的效果很不怎么样,中文字体偏淡
特别是常用的SinSun/NSimSun字体 <<

其实反锯齿显示模式并不是适合所有字体. (如宋体,明体,楷体...)
这是字体本身的设计.
所以不要强行修改字体引擎的设定来改变某些字体.
就如Mac 系统一样(他们不会拿这些字体(如宋体,明体,楷体...)来当作介面字体.
反而特别地设计了大黑体来作为介面字体.
如果还是喜爱使用simsun/mingliu,那只需要安装上xft补丁,在freetype 启动 bytecode option.
然後在fontconfig 加入以下设定


<alias>
  <family>sans-serif</family>
  <prefer>
   &lt;family&gt;Tahoma&lt;/family&gt;
   &lt;family&gt;PMingLiU&lt;/family&gt;
   &lt;family&gt;MingLiU&lt;/family&gt;
   &lt;family&gt;NSimSun&lt;/family&gt;
   &lt;family&gt;SimSun&lt;/family&gt;
   &lt;family&gt;新細明體&lt;/family&gt;
   &lt;family&gt;細明體&lt;/family&gt;
   &lt;family&gt;新宋体&lt;/family&gt;
   &lt;family&gt;宋体&lt;/family&gt;

  </prefer>
&lt;/alias&gt;

        &lt;match target="font"&gt;
                &lt;test name="family"&gt;
                        &lt;string&gt;SimSun&lt;/string&gt;
                        &lt;string&gt;NSimSun&lt;/string&gt;
                        &lt;string&gt;MingLiU&lt;/string&gt;
                        &lt;string&gt;PMingLiU&lt;/string&gt;
                        &lt;string&gt;Tahoma&lt;/string&gt;
                        &lt;string&gt;新細明體&lt;/string&gt;
                        &lt;string&gt;細明體&lt;/string&gt;
                        &lt;string&gt;新宋体&lt;/string&gt;
                        &lt;string&gt;宋体&lt;/string&gt;
                &lt;/test&gt;
                &lt;test name="pixelsize" compare="less"&gt;
                        &lt;double&gt;22&lt;/double&gt;
                &lt;/test&gt;
   &lt;edit name="antialias" mode="assign"&gt;
      <bool>f</bool>
   &lt;/edit&gt;
                &lt;edit name="autohint"&gt;
                        <bool>false</bool>
                &lt;/edit&gt;
                &lt;edit name="hinting"&gt;
                        <bool>true</bool>
                &lt;/edit&gt;
        &lt;/match&gt;

        &lt;match target="font"&gt;
                &lt;test name="family"&gt;
                        &lt;string&gt;SimSun&lt;/string&gt;
                        &lt;string&gt;NSimSun&lt;/string&gt;
                        &lt;string&gt;MingLiU&lt;/string&gt;
                        &lt;string&gt;PMingLiU&lt;/string&gt;
                        &lt;string&gt;Tahoma&lt;/string&gt;
                        &lt;string&gt;新細明體&lt;/string&gt;
                        &lt;string&gt;細明體&lt;/string&gt;
                        &lt;string&gt;新宋体&lt;/string&gt;
                        &lt;string&gt;宋体&lt;/string&gt;
                &lt;/test&gt;

                &lt;test name="pixelsize" compare="more"&gt;
                        &lt;double&gt;22&lt;/double&gt;
                &lt;/test&gt;
   &lt;edit name="antialias" mode="assign"&gt;
      <bool>t</bool>
   &lt;/edit&gt;
                &lt;edit name="autohint"&gt;
                        <bool>false</bool>
                &lt;/edit&gt;
                &lt;edit name="hinting"&gt;
                        <bool>true</bool>
                &lt;/edit&gt;
        &lt;/match&gt;
回复

使用道具 举报

发表于 2003-10-2 20:49:48 | 显示全部楼层
楼上的解决方案应该不是最好的,根据 akito 的 xft patch,直接在 font.conf 加入

        &lt;match target="font"&gt;
                &lt;edit name="embeddedbitmap" mode="assign"&gt;
                        <bool>t</bool>
                &lt;/edit&gt;
        &lt;/match&gt;

应该可以优先使用内嵌的 bitmap 字体,然而这样处理后,粗体并不是很好看,锯齿比较明显。如果不加这一句的话,小字体比较模糊,大些的字体倒还好,但是不如 firefly 的补丁显的清楚,但 firefly 的补丁,英文又太粗,所以我现在的 freetype 没有打那个 gamma 的补丁,用起来还凑和吧。
回复

使用道具 举报

发表于 2003-10-6 16:19:59 | 显示全部楼层
[quote:4e7ddf3674="gackt3541"]
不过还有一些问题,正在与他联络.
[/quote]

不知是什麼問題呢?

[quote:4e7ddf3674="gackt3541"]
QT 预设会读取 XLFD 的字体路径,其後才读取fontconfig的字体路径.
其实可以让QT 放弃读取 XLFD 的字体路径.
不过akito那儿没有提供.
[/quote]

最近我把 akito 與 Firefly 兩位的 patches 結合在一起, 已解決了這個問題。
QT 的版本是 3.2.1。

[quote:4e7ddf3674="lucida and theseus"]
&gt;&gt;另外qt的字型替代/管理部分有bug&lt;&lt;
&gt;&gt;&gt;就是无法找到CJK字体的英文名称,&lt;&lt;&lt;

[/quote]

同上 !

我曾只使用 akito 的 patch 來 compile xft, fontconfig 等都失敗, 不知有甚麼
特別的地方需耍注意呢?

我是使用 Slackware 9/9.1 的,也曾利用 Firefly 的 patch 成功包裝成套件。
回复

使用道具 举报

发表于 2003-10-7 16:37:12 | 显示全部楼层
只用 akito 的 patch 编译 xft 和 fontconfig 可以成功的,我在 RH9 上就成功的用他的 patch 编译了。akito 的 patch 的粗体的形状好看,但是边缘比 firefly 的粗体的边缘要模糊。
回复

使用道具 举报

 楼主| 发表于 2003-10-7 18:35:18 | 显示全部楼层
&gt;&gt;akito 的 patch 的粗体的形状好看,但是边缘比 firefly 的粗体的边缘要模糊。&lt;&lt;

我想你有点弄错,firefly 的xft patch 是来自 akito 的.
http://www.kde.gr.jp/~akito/patch/fcpackage/2_1/old/
至於,今次的模拟粗体在计算运法与旧版本不同,其实已经比较接近真正的粗体.当然,此中这只是模拟粗体,难免会有其缺点,你可以向akito反映你的意见.

&gt;&gt;我曾只使用 akito 的 patch 來 compile xft, fontconfig 等都失敗, 不知有甚麼特別的地方需耍注意呢?&lt;&lt;

在编译fontconfig 时,有没有加上 --enable-shared --enable-static .
在编译qt时有没有加上  -shared -xft .

我这里暂时收集了一些补丁,可以尝试使用.
首先编译 fontconfig,xft,freetype.

http://www.acad.polyu.edu.hk/~lbdennis/hifi/patch/fontconfig-2.2.1/
http://www.acad.polyu.edu.hk/~lbdennis/hifi/patch/freetype-2.1.5/
http://www.acad.polyu.edu.hk/~lbdennis/hifi/patch/xft-2.2.1/
http://www.acad.polyu.edu.hk/~lbdennis/hifi/patch/qt-3.2.1/

&gt;&gt;不过还有一些问题,正在与他联络. &lt;&lt;
有些CJK字体的英文字会使用中文字的宽度.

&gt;&gt;&gt;&gt;另外qt的字型替代/管理部分有bug&lt;&lt; &lt;&lt;
已经向akito提出了问题,正在等待回覆.
回复

使用道具 举报

发表于 2003-10-7 22:26:13 | 显示全部楼层
>>我想你有点弄错,firefly 的xft patch 是来自 akito 的.
我又对比了他们的 patch,firefly 的 xft 实现粗体的方法和你给出的网址中 akito 的旧补丁是有比较大的区别的,在很多方面存在着差别。

>>有些CJK字体的英文字会使用中文字的宽度.
firefly 对这个进行了修改,我安装的字体中原来是这样的字体中的英文都恢复正常宽度了,不再与中文等宽了。
回复

使用道具 举报

发表于 2003-10-8 00:52:06 | 显示全部楼层
[quote:5b3401fb4c="chemist"]>>我想你有点弄错,firefly 的xft patch 是来自 akito 的.
我又对比了他们的 patch,firefly 的 xft 实现粗体的方法和你给出的网址中 akito 的旧补丁是有比较大的区别的,在很多方面存在着差别。[/quote]

兩位也沒有錯,只是程式已改良罷了。兩位如有留意 Firefly 兄網上 ChangeLog,
也有提及原先的粗體 patch 是改良自 Akito 兄的,但基於維護的困難,所以參考了
xfree86 的源碼,重新改良而成的。而這也正是開源碼的好處,可以互相參考,取
長補短,互為啟發,作為良性競爭,這樣便可進步千里呢。

[quote:5b3401fb4c="chemist"]>>有些CJK字体的英文字会使用中文字的宽度.
firefly 对这个进行了修改,我安装的字体中原来是这样的字体中的英文都恢复正常宽度了,不再与中文等宽了。[/quote]

我也參考了 Akito 和 Firefly 兩位在 freetype, fontconfig, xft 及 qt 上的修正,兼收並束,盡取兩高手的精華,二合為一,包成四個在 Slackware 9.1
的 packages, 正在測試其穩定呢!
回复

使用道具 举报

 楼主| 发表于 2003-10-10 01:46:04 | 显示全部楼层
&gt;&gt;有些CJK字体的英文字会使用中文字的宽度. &lt;&lt;
OK,问题已经解决,不用什麽补丁,只需在fonts.conf 加入以下内容
&lt;match target="font"&gt;
&lt;test target="pattern" name="lang" compare="contains"&gt;
&lt;string&gt;zh-tw&lt;/string&gt;
&lt;string&gt;zh-cn&lt;/string&gt;
&lt;string&gt;ja&lt;/string&gt;
&lt;string&gt;ko&lt;/string&gt;
&lt;/test&gt;

&lt;edit name="spacing"&gt;
&lt;const&gt;proportional&lt;/const&gt;
&lt;/edit&gt;

&lt;edit name="globaladvance"&gt;
<bool>false</bool>

&lt;/edit&gt;
&lt;/match&gt;

Freetype
自行决定是否要启用 BYTECODE_INTERPRETER .
另外,akito 的 autohint patch 已经更新.自行决定是否打上.
不过,我看不出这个补丁的用途.
http://www.kde.gr.jp/~akito/patch/freetype2/2.1.5/

Xft
就我所见,
旧版的模拟粗体是向右伸展,重复造型.
新版的模拟粗体是在中心面积向外伸展.
而 firefly 的 xft2.1.2 patch 是沿用旧版的模拟粗体方法.

QT
补丁没有问题,可以打上的.
不过 KDE 3.2 还有正式发布 ,所以我还是等待redhat的发布版本.
回复

使用道具 举报

 楼主| 发表于 2003-10-10 01:47:45 | 显示全部楼层
應該是
&lt;edit name="globaladvance"&gt;
<bool>false</bool>

...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-10 22:53 , Processed in 0.028424 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表