LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 7105|回复: 56

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

[复制链接]
发表于 2004-11-18 01:44:14 | 显示全部楼层 |阅读模式
在阅读本文之前,希望你拥有以下的基本知识:
  • 本论坛Mandrakelinux版面专用FTP服务器的地址
  • 会在控制台切换到root
  • 能看懂简单的英文
如果你不具有以上知识,请自行寻找解决方法。

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

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

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

步骤一 下载全部软件包

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

在我写这篇文章的时候,我的硬盘里有这些包:
  1. OpenOffice.org-1.1.3-2mdk.Firefly.i586.rpm
  2. OpenOffice.org-help-en-1.1.3-2mdk.Firefly.i586.rpm
  3. OpenOffice.org-help-zh_CN-1.1.3-2mdk.Firefly.i586.rpm
  4. OpenOffice.org-help-zh_TW-1.1.3-2mdk.Firefly.i586.rpm
  5. OpenOffice.org-l10n-en-1.1.3-2mdk.Firefly.i586.rpm
  6. OpenOffice.org-l10n-zh_CN-1.1.3-2mdk.Firefly.i586.rpm
  7. OpenOffice.org-l10n-zh_TW-1.1.3-2mdk.Firefly.i586.rpm
  8. OpenOffice.org-libs-1.1.3-2mdk.Firefly.i586.rpm
  9. X11R6-contrib-6.7.0-4.1.101mdk.Firefly.i586.rpm
  10. fontconfig-2.2.96-7mdk.Firefly2.i586.rpm
  11. fonts-ttf-firefly-1.2.0-1mdk.noarch.rpm
  12. libfontconfig1-2.2.96-7mdk.Firefly2.i586.rpm
  13. libfontconfig1-devel-2.2.96-7mdk.Firefly2.i586.rpm
  14. libxorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm
  15. libxorg-x11-devel-6.7.0-4.1.101mdk.Firefly.i586.rpm
  16. libxorg-x11-static-devel-6.7.0-4.1.101mdk.Firefly.i586.rpm
  17. xorg-x11-100dpi-fonts-6.7.0-4.1.101mdk.Firefly.i586.rpm
  18. xorg-x11-6.7.0-4.1.101mdk.Firefly.i586.rpm
  19. xorg-x11-75dpi-fonts-6.7.0-4.1.101mdk.Firefly.i586.rpm
  20. xorg-x11-Xnest-6.7.0-4.1.101mdk.Firefly.i586.rpm
  21. xorg-x11-Xvfb-6.7.0-4.1.101mdk.Firefly.i586.rpm
  22. xorg-x11-cyrillic-fonts-6.7.0-4.1.101mdk.Firefly.i586.rpm
  23. xorg-x11-doc-6.7.0-4.1.101mdk.Firefly.i586.rpm
  24. xorg-x11-glide-module-6.7.0-4.1.101mdk.Firefly.i586.rpm
  25. xorg-x11-server-6.7.0-4.1.101mdk.Firefly.i586.rpm
  26. xorg-x11-xfs-6.7.0-4.1.101mdk.Firefly.i586.rpm
复制代码
一共是26个文件。
 楼主| 发表于 2004-11-18 01:54:59 | 显示全部楼层

步骤二 选择字体

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

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

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

如果你想要使用simsun,dongwen等字体的话,可以使用Mandrakelinux控制中心(控制您的计算机)的字体选项(DrakFont)来导入那些字体。
 楼主| 发表于 2004-11-18 02:05:57 | 显示全部楼层

步骤三 安装打过补丁的fontconfig

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

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

第二个libfontconfig1也很顺利
  1. [root@localhost]#[color=red]rpm -qa libfontconfig1[/color]
  2. libfontconfig1-2.2.96-7mdk.i586
  3. [root@localhost]#[color=red]urpmi libfontconfig1-2.2.96-7mdk.Firefly2.i586.rpm[/color]
  4. [root@localhost]#[color=red]rpm -qa libfontconfig1-devel[/color]
复制代码
这时我发现第三条rpm -qa命令没有任何输出。这就是说,我的系统里根本就没有安装libfontconfig1-devel这个包,那么也就没有必要安装新包了,因为根本用不上。
 楼主| 发表于 2004-11-18 02:18:47 | 显示全部楼层

步骤四 安装打过补丁的libxft

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

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

步骤五 重新启动 X 与 OOo

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

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

最后还剩下几个 OOo 开头的包,你基本上没有太多选择,把它们全都装上就行了。系统自带的 OOo 是没有汉字粗体的,你需要装上firefly补丁过的包才能有粗体。
  1. urpmi OpenOffice.org*.rpm
复制代码
 楼主| 发表于 2004-11-18 02:32:00 | 显示全部楼层

步骤六 开启autohint及选装freetype

由于firefly对fontconfig的补丁默认把autohint给关掉了,所以安装以后要自行打开autohint开关,要在/etc/fonts/local.conf中找到其它的 match 段,在和它们平行的地方添加这一段:
  1.         <match target="font">
  2.                 <edit name="autohint" mode="assign">
  3.                         <bool>true</bool>
  4.                 </edit>
  5.         </match>
复制代码

系统自带的freetype效果很不错了,但如果你仍然觉得不好看,可以安装打过补丁的freetype。Freetype 这个软件包是由rex编译的,位于服务器的 /official/10.1/beautify/CompiledByRex/ 目录中。注意要选对自己的CPU型号,里面有i586和athlon两个版本。

安装起来有一点困难,因为你会发现有这个问题:
  1. [root@localhost]#[color=red]rpm -qa libfreetype6[/color]
  2. libfreetype6-2.1.9-2mdk.i586.rpm
  3. [root@localhost]#[color=red]urpmi libfreetype6-2.1.9-2mdk.i586.rpm[/color]
复制代码
系统会提示Everything is installed。因为系统里已经安装了一个同名软件包,没有必要再安装了。这个时候我们需要使用 rpm 命令的强制参数 --force 来安装
  1. [root@localhost]#[color=red]rpm -i --force libfreetype6-2.1.9-2mdk.i586.rpm[/color]
复制代码
发表于 2004-11-18 11:43:58 | 显示全部楼层
好啊!
发表于 2004-11-18 12:21:14 | 显示全部楼层
最终的美化效果如何??能贴出图来看一下吗?
发表于 2004-11-18 12:59:43 | 显示全部楼层
终于等到了一个比较好的美化方法了!!!
晚上试试看!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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