debian中文化

对于使用 X Window 的用户而言,拥有一个漂亮的界面是非常重要的。因为只有这样,工作的时候才能心情娱悦,否则,看着大小不一或者是朦朦胧胧的字体,恐怕没人会有心情做自己的工作。

由于中文 TTF 字库的版权原因,很多 Linux 的发型版都没有携带最常用的简体中文字库。虽然台湾的文鼎公司捐助了四款中文字体给自由社区,但其中的简体中文字体却只不完整地支持 GB2312 的字符集,对于多数应用而言都是不够的。RedHat 等发型版购买了一些中文字体,但其效果却并不怎么好,因此,RH/Fedora 的中文用户一般也都会安装其它的中文字体。

Debian 的字体管理有自己的一套,可以说非常方便,因为要美化 Debian 的中文桌面也是非常容易的。在这里,我只介绍如何是使用已经打包的中文字体来完成对系统的美化,自己制作中文字体包以及 Debian 字体管理程序 defoma 的使用,请参考相关的文档。此外,本文中介绍的内容仅仅适用于 Sarge 之后版本的用户,对于比较老的版本,由于有些关键的软件包对中文的支持还不是很好,建议升级系统。

以下内容在我自己的机器上实验过,不过如果在你的系统上跑来有什么其它的问题,也可以直接和我联系。
安装必要的软件包

要美化自己的桌面环境,首先必须要安装一些软件包,用管理员的身份使用如下命令安装,如果已经安装过的则可以跳过这一步。

    # apt-get install x-ttcidfont-conf

这个软件包是 defoma 的一个插件,用于管理 TrueType 和 CID 字体。我们是要使用其中管理 TrueType 字体的部分。在安装这个软件包的时候,系统会给出一个选项,问中文字体采用哪个渲染引擎。选项中有 freetype 和 xtt,在这里最好选择 freetype。需要注意的是,这里的选择必须和 /etc/X11/XF86Config-4 中的配置保持一致。这个文件在 Debian 系统下默认选择了 freetype,因此在安装这个软件包时最好也使用 freetype。同时由于 freetype 已经可以很好地支持中文粗体和斜体,因此推荐用它。

在安装的过程中,系统会提示你将两个目录加入到 X Window 的配置文件中。如果不做这一步,传统的 X Window 应用程序将会无法使用 defoma 管理的 TrueType 字体。因此,用文本编辑器编辑/etc/X11/XF86Config-4,在其中 Files 一节中加入:

    FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
    FontPath        "/var/ilb/defoma/x-ttcidfont-conf.d/dirs/CID"

如果你确信自己并未使用 CID 字体,可以不加第二行。
安装英文字体包

虽然本文重点在于中文桌面的美化,但没有漂亮的英文字体,桌面也是好看不了的。在 Linux 上可以选择的英文字体非常多,其中我个人比较欣赏的是由 Bitstream 出品的 Vera 系列字体,和由 Microsoft 提供的 Windows 核心字体。前者是一款开源字体,而后者则可以从 SourceForge 下载免费使用。由于很多文档在 Windows 上编写,使用 Windows 的核心字体可以获得最好的显示效果。

Bitstream 的字体可以直接用 apt-get 命令安装,而 MS 的核心字体则需要先从 SourceForge 的 Smart package of Microsoft's core fonts项目下载,或者是在安装的过程中由安装程序下载。使用如下命令可以安装上述字体:

    # apt-get install ttf-bitstream-vera msttcorefonts

在安装后者时需提供已下载字体包的路径或提供可以直接访问 SourceForge 的网络环境。 安装中文字体包

由于需要安装的中文字体包并非 Debian 官方发布中的内容,因此,需要修改 /etc/apt/sources.list,在其中加入如下内容:

    # deb http://10.1.0.155/~liling/debian/ttfonts/ ./

然后执行如下命令:

    # apt-get update
    # apt-get install ttf-microsoft-simsun ttf-microsoft-simhei
    # apt-get install ttf-microsoft-simyou ttf-microsoft-simli

这些中文字体包使用的是中文 Win98 及 Office 中的 TTF 字体,为了能配合 cjk-latex,在打包时选择了 TTF 而非 TTC 字体。

这些字体在 X Window 的应用程序中可以通过 -default-song-*、-default-hei-、-default-youyuan- 和 -default-lisu-* 来访问。另外两款常用的中文字型仿宋和楷体,我们就使用文鼎公司提供的版本,它们在 Debian 中的软件包的名字是 ttf-arphic-gbsn00lp 和 ttf-arphic-gkai00mp,可以用 apt-get 命令来安装。

中文字体安装好后,可以重新启动 X Window 或者是用 xset 刷新字体,然后再用 xfontsel 便可看到新的字体了。

同时,使用 GNOME 或者 KDE 也可以在字体选择的对话框中看到新的字体了。

如果你想手工安装字体而不是使用字体包,最重要的事情就是要为每个字体准备好 defoma 字体描述文件,defoma 就是通过这些描述文件来为每一个需要的应用程序注册字体信息的。上述四个字体的描述文件为simsun.hints、simhei.hints、simli.hints、simyou.hints。注册字体的命令为 defoma-hints,这方面的介绍还是很多的,在此不再赘述。
修改 fontconfig 配置

安装好中文 TrueType 字体之后,可以通过修改应用程序的配置达到获得漂亮字体的效果,然而,是否有一种可以不需要做任何的修改就得到漂亮字体的方案呢?答案是肯定的,只要修改 fontconfig 的配置就可以了。

fontconfig 的配置是 XML 格式的文件,它的作用就是在应用程序所需要的字体名称和系统安装好的字体之间进行匹配,以及修改字体的缺省配置,如 AA (AntiAlias) 等。

fontconfig 有两个系统配置文件和一个用户配置文件。在每个用户的 Home 目录中,可以存放一个 .fonts.conf 文件,这就是每个用户的字体配置文件,它先于系统的配置文件被使用

自己改 fontconfig 的配置是一件比较麻烦的事情,最方便的就是把别人已经配置好的配置文件拿来,覆盖原先的版本,或者是作为个人的配置文件。如果你不是要专门研究 fontconfig,也没有必要花很多时间去研究这个配置,因为为用户提供一个好的缺省的配置文件原本是系统开发人员和管理员的职责所在。这里有一个已经编写好的 fonts.conf 文件,将它保存为 ~/.fonts.conf 就可以了。(注意是保存在个人目录下,且文件名前面有个“.”。)

安装好字体配置文件后,再次重启 X Window (退出登录然后重新登录),便可以得到漂亮的字体了。
个别软件的问题

由于有一些软件并非专为 GNOME 或 KDE 编写,因此其字体配置会有特殊的地方。而传统的X Window应用程序也无法直接使用fontconfig的成果,因此就需要对它们进行一些特别的配置。
Mozilla 系列浏览器

Mozilla 浏览器以及使用它作为核心的浏览器如 Epiphany 和 Galeon 需要安装插件才能正确使用xft来显示字体。只要安装软件包mozilla-xft就可以了。如果使用前面所属的配置,无需修改便可看到漂亮的字体。
GTK 1.x

对于早期的使用 GTK 1.x 的应用程序,它们有自己特有的配置字体的方式,对于简体中文而言,只要修改/etc/gtk/gtkrc.zh_CN,并将内容替换为:

    style "gtk-default-zh-cn" {
           fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,/
                      -default-song-medium-r-normal--12-*-*-*-*-gbk-0,/
                      *-r-*"
    }
    class "GtkWidget" style "gtk-default-zh-cn"

如果你使用的是 UTF-8 字符集,那么需要修改的文件就是 /etc/gtk/gtkrc.utf-8,并将内容替换为:

    style "default-text" {
          fontset = "-default-song-medium-r-normal--*-120-*-*-p-*-iso10646-1,/
                     -*-helvetica-medium-r-normal--*-120-*-*-*-*-*-*"
    }
    class "GtkWidget" style "default-text"

曾经有很长时间,我都被在 UTF-8 字符集下使用 GTK 1.x 程序看中文所困扰,一度以为是什么软件的 Bug。最后我才了解到,由于我在 defoma 中把中文字体的 Width 设置成为了 Fixed,这样 defoma 所产生的 X 字体描述只使用 -c- 和 -m- 宽度的字体,这两种宽度描述要么是单字符字体的宽度,要么是最宽的双字符字体的宽度,对于显示中文和英文混合的内容就不合适了。因此必须将字体的宽度改成 Variable,虽然 SimSun 等字体中所有英文的宽度是一样,所有中文的宽度也都是一样,但整体上讲它们却不同。如此的设置,当启动 xmms 等软件时会有几秒的停顿,有人称之为假死,这停顿的时间就是计算机要去计算每一个字符的宽度。
QT

对于使用 GNOME的 用户而言,有时也会需要使用一些 QT 的应用程序。如果安装了 KDE,则可以直接使用其相应的程序进行配置,也可以使用 QT 的配置程序进行配置。但如果不想安装这些程序就获得漂亮的字体,可以直接写一个配置文件 ~/.qt/qtrc 就可以获得漂亮的字体了。这里有一个写好的 qtrc 可供参考。

另外,如果你是 KDE 的用户,建议你在自己的启动脚本中启动 gnome-settings-daemon 这个程序,这样所有 GTK 程序的配置都可以正确启用。启动后 KDE 程序的字体会变得比较大,没有关系,只要调小就可以了,而且字体的显示效果会更好。
OpenOffice.org

OpenOffice是目前Linux上可以使用的Office软件中对MS Office文档兼容性做的最好的一个。虽然OpenOffice使用了GNOME界面,但它有自己的字体配置方案。在Debian中,可以直接安装OpenOffice:

    apt-get install openoffice.org-l10n-zh-cn ttf-baekmuk

这样,系统会自动安装中文的OpenOffice和必要的软件包。

安装完成后,启动OpenOffice就会发现中文字体非常难看。这时,选择菜单中的工具、选项,在此对话框中选择OpenOffice.org、字体,并选择使用替换表,把字体Baekmuk Dotum替换成SimSun,并勾选自动和屏幕。

此时的OpenOffice就应该已经有漂亮的菜单啦。不过我不知道如何才能设定OpenOffice让它直接就有漂亮的字体,如果你知道,请和我联系,多谢。
Emacs

以下是我在Emacs的配置文件中设置字体的部分,在我换了CVS版的Emacs之后,就没有用这段配置了,而是用下文的修改X资源文件的方法。

    ;; create a fontsets
    (create-fontset-from-fontset-spec
     "-adobe-courier-medium-r-*-*-14-*-*-*-*-*-fontset-adobe,
      latin-iso8859-1:-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-1,
      latin-iso8859-2:-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-2,
      cyrillic-iso8859-5:-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-5,
      chinese-gb2312:*-song-medium-r-normal-*-14-*")
    (create-fontset-from-fontset-spec
     "-adobe-courier-medium-o-*-*-14-*-*-*-*-*-fontset-adobe,
      latin-iso8859-1:-adobe-courier-medium-o-*-*-14-*-*-*-*-*-*-1,
      latin-iso8859-2:-adobe-courier-medium-o-*-*-14-*-*-*-*-*-*-2,
      cyrillic-iso8859-5:-adobe-courier-medium-o-*-*-14-*-*-*-*-*-*-5,
      chinese-gb2312:*-song-medium-r-normal-*-14-*")
    (create-fontset-from-fontset-spec
     "-adobe-courier-bold-o-*-*-14-*-*-*-*-*-fontset-adobe,
      latin-iso8859-1:-adobe-courier-bold-o-*-*-14-*-*-*-*-*-*-1,
      latin-iso8859-2:-adobe-courier-bold-o-*-*-14-*-*-*-*-*-*-2,
      cyrillic-iso8859-5:-adobe-courier-bold-o-*-*-14-*-*-*-*-*-*-5,
      chinese-gb2312:*-song-medium-r-normal-*-14-*")
    (create-fontset-from-fontset-spec
     "-adobe-courier-bold-r-*-*-14-*-*-*-*-*-fontset-adobe,
      latin-iso8859-1:-adobe-courier-bold-r-*-*-14-*-*-*-*-*-*-1,
      latin-iso8859-2:-adobe-courier-bold-r-*-*-14-*-*-*-*-*-*-2,
      cyrillic-iso8859-5:-adobe-courier-bold-r-*-*-14-*-*-*-*-*-*-5,
      chinese-gb2312:*-song-medium-r-normal-*-14-*")
    (set-default-font "fontset-adobe")
    (setq default-frame-alist (append '((font . "fontset-adobe")
                                        (width . 78) (height . 45))))

~/.Xdefaults

很多传统的 X 应用程序,是使用一个资源数据库来对应用程序的字体、颜色等内容进行配置的。这些程序中的很多现在已经很不常用了,譬如 Xman,但也有很多至今依然是我们每天都在使用的强大工具,譬如 Emacs。要配置这些程序的字体,需要将资源的描述写入到文件 ~/.Xdefault s中,然后通过 xrdb 命令将其载入。

以下是我的 ~/.Xdefaults 文件的内容,其中配置了 Emacs、XFontSel 和 Xman 的字体:

    Emacs.pane.menubar.font: 7x14
    Emacs.menu*.font: 7x14
    Emacs.dialog*.font: 7x14
    Emacs.Font: fontset-song
    Emacs.FontsetList: song kai hei lucida
    Emacs.Fontset-0: -misc-fixed-medium-r-*-*-14-*-*-*-*-*-fontset-song,/
      mule-unicode-0100-24ff:-misc-fixed-medium-r-normal--14-*-*-*-*-*-iso10646-1,/
      chinese-gb2312:-*-song-medium-r-*--14-*-*-*-*-*-gb2312*-0
    
    Emacs.Fontset-1:-misc-fixed-medium-r-*-*-14-*-*-*-*-*-fontset-kai,/
      mule-unicode-0100-24ff:-misc-fixed-medium-r-normal--14-*-*-*-*-*-iso10646-1,/
      chinese-gb2312:-*-kai-medium-r-*--14-*-*-*-*-*-gb2312*-0
    
    Emacs.Fontset-2:-misc-fixed-medium-r-*-*-14-*-*-*-*-*-fontset-hei,/
      mule-unicode-0100-24ff:-misc-fixed-medium-r-normal--14-*-*-*-*-*-iso10646-1,/
      chinese-gb2312:-*-hei-medium-r-*--14-*-*-*-*-*-gbk-0
    
    XFontSel.*.font: 7x14
    
    Xman.*.font: 7x14
    Xman.*.manualFontNormal: -misc-fixed-medium-r-*-*-14-*-*-*-*-*-*-*
    Xman.*.manualFontBold: -misc-fixed-bold-r-*-*-14-*-*-*-*-*-*-*
    Xman.*.manualFontItalic: -misc-fixed-medium-o-*-*-13-*-*-*-*-*-*-*
    Xman.*.directoryFontNormal: -misc-fixed-medium-r-*-*-14-*-*-*-*-*-*-*

需要注意的是,~/.Xdefaults 文件中的内容并不会被自动地读入,每次启动 X 之后,都需要执行 xrdb -merge ~/.Xdefaults 命令。如果希望其内容被自动读入,可以设置环境变量 XENVIRONMENT,也可以将该文件命名为 ~/.Xdefaults-hostname,其中 hostname 是你正在使用的系统的主机名。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值