+ -
当前位置:首页 → 问答吧 → 10.1 推荐美化方案之一:Firefly全补丁

10.1 推荐美化方案之一:Firefly全补丁

时间:2004-11-18

来源:互联网

在阅读本文之前,希望你拥有以下的基本知识:
  1. 本论坛Mandrakelinux版面专用FTP服务器的地址
  2. 会在控制台切换到root
  3. 能看懂简单的英文
如果你不具有以上知识,请自行寻找解决方法。

首先,我必须澄清一件事。10.1 Official与10.1 Community在字体问题上有了显著的提升。默认情况下,AA的汉字不是那么歪七扭八,而只是从外观上看起来比较淡而已。如果你已经接受了这种情况,没有必要进行任何美化。

Linux的字体管理方面是分工很明确的。本文中要提到两个软件,一个是fontconfig,另外一个是libxft。fontconfig是一个系统字体管理平台,它负责直接向Qt、Pango等图形界面库提供系统字体的信息。libxft 是一套字体渲染算法,它会来进行实际的粗体计算。

你也许还会听到一个软件叫作 freetype,它是字体底层接口库,它的下边就是具体字体,它从具体的字体中提取出点阵或者曲线信息,然后交由libxft进行运算后显示。本文之所以不着重谈到freetype,正是因为系统自带的freetype效果已经很好了。当然,我会在最后介绍一下freetype包的作用。

作者: fundawang   发布时间: 2004-11-18

本文用到的所有软件包都可以从 FTP 服务器的 /official/10.1/beautify/CompiledByAlex/这个目录中找到。你必须下载全部软件包,当然在大多数情况下,你并不需要安装全部软件包。

在我写这篇文章的时候,我的硬盘里有这些包:
代码:
OpenOffice.org-1.1.3-2mdk.Firefly.i586.rpm
OpenOffice.org-help-en-1.1.3-2mdk.Firefly.i586.rpm
OpenOffice.org-help-zh_CN-1.1.3-2mdk.Firefly.i586.rpm
OpenOffice.org-help-zh_TW-1.1.3-2mdk.Firefly.i586.rpm
OpenOffice.org-l10n-en-1.1.3-2mdk.Firefly.i586.rpm
OpenOffice.org-l10n-zh_CN-1.1.3-2mdk.Firefly.i586.rpm
OpenOffice.org-l10n-zh_TW-1.1.3-2mdk.Firefly.i586.rpm
OpenOffice.org-libs-1.1.3-2mdk.Firefly.i586.rpm
X11R6-contrib-6.7.0-4.1.101mdk.Firefly.i586.rpm
fontconfig-2.2.96-7mdk.Firefly2.i586.rpm
fonts-ttf-firefly-1.2.0-1mdk.noarch.rpm
libfontconfig1-2.2.96-7mdk.Firefly2.i586.rpm
libfontconfig1-devel-2.2.96-7mdk.Firefly2.i586.rpm
libxorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm
libxorg-x11-devel-6.7.0-4.1.101mdk.Firefly.i586.rpm
libxorg-x11-static-devel-6.7.0-4.1.101mdk.Firefly.i586.rpm
xorg-x11-100dpi-fonts-6.7.0-4.1.101mdk.Firefly.i586.rpm
xorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm
xorg-x11-75dpi-fonts-6.7.0-4.1.101mdk.Firefly.i586.rpm
xorg-x11-Xnest-6.7.0-4.1.101mdk.Firefly.i586.rpm
xorg-x11-Xvfb-6.7.0-4.1.101mdk.Firefly.i586.rpm
xorg-x11-cyrillic-fonts-6.7.0-4.1.101mdk.Firefly.i586.rpm
xorg-x11-doc-6.7.0-4.1.101mdk.Firefly.i586.rpm
xorg-x11-glide-module-6.7.0-4.1.101mdk.Firefly.i586.rpm
xorg-x11-server-6.7.0-4.1.101mdk.Firefly.i586.rpm
xorg-x11-xfs-6.7.0-4.1.101mdk.Firefly.i586.rpm
一共是26个文件。

作者: fundawang   发布时间: 2004-11-18

你可能喜欢中易simsun,或者是东文宋体,再或者是方正圆体。但你必须承认,使用这些字体是有潜在版权问题的。即便是你从正版的软件中获得了这些字体的使用权,这些使用权也必定是和那个软件捆绑在一起的。至少目前,你不能合法的在Mandrakelinux中使用这些字体。

所以,我们只有使用Firefly亲手绘制的新宋这个字体,才是万无一失的,尽管它看起来不是那么漂亮。

要使用这个字体,请以root身份安装fonts-ttf-firefly-1.2.0-1mdk.noarch.rpm这个包。在命令行输入
代码:
urpmi fonts-ttf-firefly-1.2.0-1mdk.noarch.rpm
你会看到系统提示安装进度完成。

如果你想要使用simsun,dongwen等字体的话,可以使用Mandrakelinux控制中心(控制您的计算机)的字体选项(DrakFont)来导入那些字体。

作者: fundawang   发布时间: 2004-11-18

你会看到带有fontconfig字样的包,一共有三个。
代码:
fontconfig-2.2.96-7mdk.Firefly2.i586.rpm
libfontconfig1-2.2.96-7mdk.Firefly2.i586.rpm
libfontconfig1-devel-2.2.96-7mdk.Firefly2.i586.rpm
我们没有必要全部安装。我们所应该做的,是先找出系统为我们安装了哪些包,然后再安装对应的包,这样就可以了。

为此,我们先来看看系统有没有为我们安装fontconfig。现在看看我的屏幕(红色字是我输入的)
代码:
[root@localhost]#rpm -qa fontconfig
fontconfig-2.2.96-7mdk.i586
[root@localhost]#urpmi fontconfig-2.2.96-7mdk.Firefly2.i586.rpm
这个对话说明,系统中已经安装了一个叫fontconfig-2.2.96-7mdk.i586的包。我们就依样画瓢,安装我们的fontconfig。

第二个libfontconfig1也很顺利
代码:
[root@localhost]#rpm -qa libfontconfig1
libfontconfig1-2.2.96-7mdk.i586
[root@localhost]#urpmi libfontconfig1-2.2.96-7mdk.Firefly2.i586.rpm
[root@localhost]#rpm -qa libfontconfig1-devel
这时我发现第三条rpm -qa命令没有任何输出。这就是说,我的系统里根本就没有安装libfontconfig1-devel这个包,那么也就没有必要安装新包了,因为根本用不上。

作者: fundawang   发布时间: 2004-11-18

在Mandrakelinux中,libxft是作为xorg的一个子模块出现的。也就是说,要更新libxft,你必须更新整个xorg。

我们先来看看最明显的那个包
代码:
[root@localhost]#rpm -qa xorg-x11
xorg-x11-6.7.0-3mdk.i586
[root@localhost]#urpmi xorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm
按照这个步骤下来,你会发现它并没有安装成功。而是说不满足依赖关系 libxorg-x11==6.7.0-4.1.101。这是什么意思呢?这就是说你在安装 xorg-x11 之前,必须先安装同版本的libxorg-x11。这样就好办了,我们把这两个包一起装。
代码:
[root@localhost]#urpmi libxorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm xorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm
结果还是不行,它就会说这两个包会和xorg-x11-75dpi-fonts冲突的。没办法,我们只能在命令行中把新的75dpi-fonts也带上,变成这样(斜线是为了排版方便,实际上都是在一行里边的):
代码:
[root@localhost]#urpmi libxorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm \
xorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm xorg-x11-75dpi-fonts-6.7.0-4.1.101mdk.Firefly.i586.rpm
就这样无休无止的进行下去,结果我最后执行的命令是
代码:
[root@localhost]#urpmi libxorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm \
xorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm xorg-x11-75dpi-fonts-6.7.0-4.1.101mdk.Firefly.i586.rpm \
xorg-x11-xfs-6.7.0-4.1.101mdk.Firefly.i586.rpm xorg-x11-server-6.7.0-4.1.101mdk.Firefly.i586.rpm
当然,你的系统可能与我的不同,但方法总是一样的。无论系统提示冲突什么或者依赖什么,你就把它提示的这个包添加在命令行里。

作者: fundawang   发布时间: 2004-11-18

如果你现在已经进入了X,比如说在KDE或者GNOME里。那么现在按Ctrl+Alt+Backspace重新启动X,这样刚刚安装的Xorg就会生效。

你马上就会看到KDE启动画面里的中文变成了粗体。我们的工作接近完工了。

最后还剩下几个 OOo 开头的包,你基本上没有太多选择,把它们全都装上就行了。系统自带的 OOo 是没有汉字粗体的,你需要装上firefly补丁过的包才能有粗体。
代码:
urpmi OpenOffice.org*.rpm

作者: fundawang   发布时间: 2004-11-18

由于firefly对fontconfig的补丁默认把autohint给关掉了,所以安装以后要自行打开autohint开关,要在/etc/fonts/local.conf中找到其它的 match 段,在和它们平行的地方添加这一段:
代码:
 <match target="font">
 <edit name="autohint" mode="assign">
 <bool>true</bool>
 </edit>
 </match>
系统自带的freetype效果很不错了,但如果你仍然觉得不好看,可以安装打过补丁的freetype。Freetype 这个软件包是由rex编译的,位于服务器的 /official/10.1/beautify/CompiledByRex/ 目录中。注意要选对自己的CPU型号,里面有i586和athlon两个版本。

安装起来有一点困难,因为你会发现有这个问题:
代码:
[root@localhost]#rpm -qa libfreetype6
libfreetype6-2.1.9-2mdk.i586.rpm
[root@localhost]#urpmi libfreetype6-2.1.9-2mdk.i586.rpm
系统会提示Everything is installed。因为系统里已经安装了一个同名软件包,没有必要再安装了。这个时候我们需要使用 rpm 命令的强制参数 --force 来安装
代码:
[root@localhost]#rpm -i --force libfreetype6-2.1.9-2mdk.i586.rpm

作者: fundawang   发布时间: 2004-11-18

好啊!

作者: zhaozhh02   发布时间: 2004-11-18

最终的美化效果如何??能贴出图来看一下吗?

作者: homesp   发布时间: 2004-11-18

终于等到了一个比较好的美化方法了!!!
晚上试试看!!

作者: bluelove   发布时间: 2004-11-18

使用的 libxft 是什么版本的?

作者: ShiyuTang   发布时间: 2004-11-18

足够恐怖的复杂

作者: QuickTime   发布时间: 2004-11-18

引用:
最初由 QuickTime 发表
足够恐怖的复杂
周末的时候我写一个安装脚本,可能就比较简单了,但我对shell不太熟,不要指望脚本有多高的水准,只是能用而已。
引用:
最初由 ShiyuTang 发表
使用的 libxft 是什么版本的?
不太清楚,但xorg-x11是刚刚更新过的。

作者: fundawang   发布时间: 2004-11-18

引用:
最初由 QuickTime 发表
足够恐怖的复杂
请推荐一个简单的:o

作者: Jwangk   发布时间: 2004-11-18

挺有耐心的,我觉得
主要是顺带说起的那些解释性的语句不错,让新手能够一目了然。

作者: cube316   发布时间: 2004-11-19

语言确实很简练!!!!!

作者: zhaozhh02   发布时间: 2004-11-19

为何美化了后,konqueror显示繁体字还是方块,firefox显示确正常了(但是如果标签页有繁体字还是有问题)

konqueror:
上传的图像
抓砑1.png (90.3 KB, 287 次查看)

作者: 心の语   发布时间: 2004-11-19

firefox:
上传的图像
抓砑2.png (89.2 KB, 254 次查看)

作者: 心の语   发布时间: 2004-11-19

作者: silict   发布时间: 2004-11-19

这个`````````我碰到问题
上传的图像
screenshot.png (48.3 KB, 245 次查看)

作者: pliskin   发布时间: 2004-11-19

是我的命令错了吗 还是我的rpm包坏了!?我可是从ftp服务器上下了好几回的啊!

作者: pliskin   发布时间: 2004-11-19

和这个有关系吗??
上传的图像
screenshot-2.gif (76.7 KB, 242 次查看)

作者: pliskin   发布时间: 2004-11-19

引用:
最初由 心の语 发表
为何美化了后,konqueror显示繁体字还是方块,firefox显示确正常了(但是如果标签页有繁体字还是有问题)

konqueror:
我再mandrake里直接导入firefly字体,然后直接使用它就是这个桌面效果

作者: Jwangk   发布时间: 2004-11-19

你的效果呢?

作者: zhaozhh02   发布时间: 2004-11-19

引用:
最初由 心の语 发表
为何美化了后,konqueror显示繁体字还是方块,firefox显示确正常了(但是如果标签页有繁体字还是有问题)
这个是本论坛的bug。你查看源文件就知道了,论坛所有页面的编码都是gb2312,所以显示不出汉字来。你自己从菜单里选择gbk编码就行了。

作者: fundawang   发布时间: 2004-11-19

引用:
最初由 pliskin 发表
是我的命令错了吗 还是我的rpm包坏了!?我可是从ftp服务器上下了好几回的啊!
命令错了。我说了半天,所有的命令都是在一行上的,斜线只是为了排版方便。你不能直接粘贴。

作者: fundawang   发布时间: 2004-11-19

谢谢!!!!!!!!!
马上改正!!

作者: pliskin   发布时间: 2004-11-19

引用:
最初由 fundawang 发表
这个是本论坛的bug。你查看源文件就知道了,论坛所有页面的编码都是gb2312,所以显示不出汉字来。你自己从菜单里选择gbk编码就行了。
选择GBK效果还是一样的!

作者: 心の语   发布时间: 2004-11-19

先把i18n改成gbk

作者: fundawang   发布时间: 2004-11-19

locale改成gbk,分区里的文件夹的中文名全部乱码!
是不是那些用的是UTF-8编码原因,能不能转换编码?如果可以该怎么转!

作者: 心の语   发布时间: 2004-11-19

你原来的编码是utf-8吗?

作者: fundawang   发布时间: 2004-11-19

是的,装好默认就是UTF-8
结果想改GB2312和GB18030未遂,改了后fcitx调不出
改成GBK,可以调出fcitx,但是中文目录全部乱码!

作者: 心の语   发布时间: 2004-11-19

引用:
最初由 心の语 发表
是的,装好默认就是UTF-8
结果想改GB2312和GB18030未遂,改了后fcitx调不出
改成GBK,可以调出fcitx,但是中文目录全部乱码!
在控制中心里面修改挂载点,把现有挂载点的iocharset都改成gb2312,codepage改成gbk。或者直接更改/etc/fstab也行。

作者: fundawang   发布时间: 2004-11-19

步骤三 安装打过补丁的fontconfig
[root@localhost]#urpmi fontconfig-2.2.96-7mdk.Firefly2.i586.rpm
这步以后,还要我先删除其他N多软件包才能装。算了,好麻烦,虚就虚点,不能用就麻烦了

作者: laurelp   发布时间: 2004-11-20

引用:
最初由 fundawang 发表
在控制中心里面修改挂载点,把现有挂载点的iocharset都改成gb2312,codepage改成gbk。或者直接更改/etc/fstab也行。
没用

作者: 心の语   发布时间: 2004-11-20

哇哇
为什么大家不推荐哈密瓜,我觉得哈密瓜再加上sinsum已经恨不错了
不知道哈密瓜的东西会带来什么后果,反正没遇见过

作者: lyyq   发布时间: 2004-11-21

因为哈密瓜的东西属于黑箱,一个.bin里边究竟有什么只有他自己知道。况且,由于软件版本更新的缘故,哈密瓜的美化方案并不完全适合于10.1。最重要的一点是,simsun是有版权问题的。不要再提什么以学习和研究为目的,侵权就是侵权,它和是否支付费用是两码事。

作者: fundawang   发布时间: 2004-11-21

FireFly 的 patch 果然使英文显示变得拖泥带水啊,什么时候试试 akito 的 libxft 补丁。

作者: ShiyuTang   发布时间: 2004-11-21

引用:
最初由 fundawang 发表
因为哈密瓜的东西属于黑箱,一个.bin里边究竟有什么只有他自己知道。况且,由于软件版本更新的缘故,哈密瓜的美化方案并不完全适合于10.1。最重要的一点是,simsun是有版权问题的。不要再提什么以学习和研究为目的,侵权就是侵权,它和是否支付费用是两码事。
我是正版XP
copy simsun到linux算侵权吗?

作者: Jwangk   发布时间: 2004-11-21

引用:
最初由 ShiyuTang 发表
FireFly 的 patch 果然使英文显示变得拖泥带水啊,什么时候试试 akito 的 libxft 补丁。
这个似乎跟libxft没啥关系的。因为问题的根源还是要回到freetype本身上来,因为它总是要对所有的字符使用同样的算法,自然是要舍弃一方了。

作者: fundawang   发布时间: 2004-11-21

引用:
最初由 fundawang 发表
这个似乎跟libxft没啥关系的。因为问题的根源还是要回到freetype本身上来,因为它总是要对所有的字符使用同样的算法,自然是要舍弃一方了。
加了那段代码就是打开 autohint了?

作者: 心の语   发布时间: 2004-11-21

引用:
最初由 fundawang 发表
这个似乎跟libxft没啥关系的。因为问题的根源还是要回到freetype本身上来,因为它总是要对所有的字符使用同样的算法,自然是要舍弃一方了。
那么到底是 libxft 实现粗体还是 freetype 实现粗体呢?

我不打 freetype 补丁行吗?

作者: ShiyuTang   发布时间: 2004-11-21

libxft 是来算粗体的,freetype 是来取字型的。我理解你认为英文字体难看,是普遍难看。如果只是粗体难看,那么就是libxft的问题了。但firefly对libxft的补丁中,模拟粗体的算法是参照xfree86的,似乎不应该有问题。

不打freetype似乎是可以的,用系统默认的 freetype 似乎已经很好了。但如果你安装了新的 fontconfig,也还是要打开 autohint 的。因为 firefly 的 fontconfig 补丁默认把 autohint 给关掉了。

作者: fundawang   发布时间: 2004-11-21

Firefly兄的包装好后,在字体里显示的字体名是什么?

作者: chinasdzbyl   发布时间: 2004-11-21

引用:
最初由 chinasdzbyl 发表
Firefly兄的包装好后,在字体里显示的字体名是什么?
AR PL New Sung

作者: fundawang   发布时间: 2004-11-21

热门下载

更多