Debian中文美化

来源:互联网 发布:淘宝网首页winppo 编辑:程序博客网 时间:2024/05/10 05:49

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

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

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

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

安装必要的软件包

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

# apt-get install x-ttcidfont-conf

这个软件包是defoma的一个插件,用于管理TrueType和CID字体。我们是要使用其中管理TrueType字体的部分。

在安装的过程中,系统会提示你将两个目录加入到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的核心字体则需要先从SourceForgeSmart package of Microsoft's core fonts项目下载,或者是在安装的过程中由安装程序下载。使用如下命令可以安装上述字体:

# apt-get install ttf-bitstream-vera msttcorefonts

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

安装中文字体包

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

deb http://211.100.7.181/~liling/debian/ttfonts/ ./

如果你在北理工校内,可以使用如下地址:

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-gbsn00lpttf-arphic-gkai00mp,可以用apt-get命令来安装。

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

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

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

修改fontconfig配置

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

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

fontconfig有两个系统配置文件和一个用户配置文件。其中系统配置文件分别是/etc/fonts/fonts.conf/etc/fonts/local.conf。前者供发型版的制作者使用,后者供系统管理员使用。后者的优先级比较高,这样一旦为一个系统配置好字体,它就不会受到发型版提供者所提供的软件包改动的影响,即便升级fontconfig软件包,也不用担心编写好的配置被覆盖。在每个用户的Home目录中,也可以存放一个.fonts.conf文件,这个文件的优先级最高,但它只影响当前的用户。

自己改fontconfig的配置是一件比较麻烦的事情,最方便的就是把别人已经配置好的local.conf拿来,覆盖原先的版本,或者是作为个人的配置文件。在此,给出我正在使用的local.conf文件以供参考。

安装好字体配置文件后,再次重启X Window,便可以得到漂亮的字体了。

个别软件的问题

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

Mozilla浏览器

Mozilla浏览器以及使用它作为核心的浏览器如EpiphanyGaleon需要安装插件才能正确使用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,这样就可以获得漂亮的字体了。

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。要配置这些程序的字体,需要将资源的描述写入到文件~/.Xdefaults中,然后通过xrdb命令将其载入。

以下是我的~/.Xdefaults文件的内容,其中配置了EmacsXFontSelXman的字体:

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是你正在使用的系统的主机名。

原创粉丝点击