對於使用X Window的用戶而言,擁有一個漂亮的界面是非常重要的,只有這樣,工作的時候才能心情娛悅,否則,看着大小不一或者是朦朦朧朧的字體,恐怕沒人會有心情做自己的工作。
由於中文TTF字庫的版權原因,很多Linux的髮型版都沒有攜帶最常用的簡體中文字庫。雖然臺灣的文鼎公司捐助了四款中文字體給自由社區,但其中的簡體中文字體卻只不完整地支持GB2312的字符集,對於多數應用而言都是不夠的。RedHat等髮型版購買了一些中文字體,但其效果卻並不怎麼好,因此,RH/Fedora的中文用戶一般也都會安裝其它的中文字體。
Debian的字體管理有自己的一套,可以說非常方便,因爲要美化Debian的中文桌面也是非常容易的。在這裏,我只介紹如何是使用已經打包的中文字體來完成對系統的美化,自己製作中文字體包以及Debian字體管理程序defoma的使用,請參考相關的文檔。此外,本文中介紹的內容僅僅適用於Sarge和Sid的用戶,對於Woody的用戶而言,有些關鍵的軟件包對中文的支持還不是很好。
安裝必要的軟件包
要美化自己的桌面環境,首先必須要安裝一些軟件包,用管理員的身份使用如下命令安裝,如果已經安裝過的則可以跳過這一步。
代碼: | [複製到剪貼板] | |
|
這個軟件包是defoma的一個插件,用於管理TrueType和CID字體。我們是要使用其中管理TrueType字體的部分。
在安裝的過程中,系統會提示你將兩個目錄加入到X Window的配置文件中。如果不做這一步,傳統的X Window應用程序將會無法使用defoma管理的TrueType字體。因此,用文本編輯器編輯/etc/X11/XF86Config-4,在其中Files一節中加入:
代碼: | [複製到剪貼板] | |
|
如果你確信自己並未使用CID字體,可以不加第二行。
安裝英文字體包
雖然本文重點在於中文桌面的美化,但沒有漂亮的英文字體,桌面也是好看不了的。在Linux上可以選擇的英文字體非常多,其中我個人比較欣賞的是由Bitstream出品的Vera系列字體,和由Microsoft提供的Windows核心字體。前者是一款開源字體,而後者則可以從SourceForge下載免費使用。由於很多文檔在Windows上編寫,使用Windows的核心字體可以獲得最好的顯示效果。
Bitstream的字體可以直接用apt-get命令安裝,而MS的核心字體則需要先從SourceForge的Smart package of Microsoft's core fonts項目下載,或者是在安裝的過程中由安裝程序下載。使用如下命令可以安裝上述字體:
代碼: | [複製到剪貼板] | |
|
在安裝後者時需提供已下載字體包的路徑或提供可以直接訪問SourceForge的網絡環境。
安裝中文字體包
由於需要安裝的中文字體包並非Debian官方發佈中的內容,因此,需要修改/etc/apt/sources.list,在其中加入如下內容:
代碼: | [複製到剪貼板] | |
|
然後執行如下命令:
代碼: | [複製到剪貼板] | |
|
這些中文字體包使用的是中文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也可以在字體選擇的對話框中看到新的字體了。
修改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,便可以得到漂亮的字體了。
個別軟件的問題
由於有一些軟件並非專爲GNOME或KDE編寫,因此其字體配置會有特殊的地方。而傳統的X Window應用程序也無法直接使用fontconfig的成果,因此就需要對它們進行一些特別的配置。
Mozilla瀏覽器
Mozilla瀏覽器以及使用它作爲核心的瀏覽器如Epiphany和Galeon需要安裝插件才能正確使用xft來顯示字體。只要安裝軟件包mozilla-xft就可以了。如果使用前面所屬的配置,無需修改便可看到漂亮的字體。
Emacs編輯器
Emacs是一款功能非常強大的編輯軟件,對於它,在此我們不多做介紹。爲了讓它能夠顯示漂亮的中文字體,需要修改它的配置文件~/.emacs。將如下內容加入到該文件中即可:
代碼: | [複製到剪貼板] | |
|
如果你的Emacs還不能支持中文,則還需要進行相應的配置。
GTK 1.x
對於早期的使用GTK 1.x的應用程序,它們有自己特有的配置字體的方式,對於簡體中文而言,只要修改/etc/gtk/gtkrc.zh_CN,並將內容替換爲:
代碼: | [複製到剪貼板] | |
|
local.conf的內容:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<include ignore_missing="yes" >/var/lib/defoma/fontconfig.d/fonts.conf</include>
<!-- Uncomment below to enable bitmapped fonts --><!--
<dir>/usr/X11R6/lib/X11/fonts</dir>
--><!-- Uncomment below to enable subpixel rendering --><!--
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign"><const>rgb</const></edit>
</match>
--><!-- Uncomment below to enable the freetype autohinter module --><!--
<match target="font">
<edit name="autohint" mode="assign">
<bool>true</bool>
</edit>
</match>
--><!-- Disable font alias for Chinese 12-16 --> <match target="font" >
<test compare="eq" name="family" qual="any" >
<string>SimSun</string>
<string>SimHei</string>
</test>
<test compare="more_eq" name="pixelsize" >
<double>12</double>
</test>
<test compare="less_eq" name="pixelsize" >
<double>16</double>
</test>
<edit name="antialias" >
<bool>false</bool>
</edit>
</match>
<alias>
<family>Bitstream Vera Sans Mono</family>
<prefer>
<family>SimSun</family>
</prefer>
</alias>
<alias>
<family>SimSun</family>
<default>
<family>sans-serif</family>
<family>serif</family>
<family>monospace</family>
</default>
</alias>
<match target="pattern" >
<test name="family" qual="any" >
<string>serif</string>
</test>
<edit mode="append" binding="strong" name="family" >
<string>Bitstream Vera Serif</string>
</edit>
</match>
<match target="pattern" >
<test name="family" qual="any" >
<string>sans-serif</string>
</test>
<edit mode="append" binding="strong" name="family" >
<string>Bitstream Vera Sans</string>
</edit>
</match>
<match target="pattern" >
<test name="family" qual="any" >
<string>monospace</string>
</test>
<edit mode="append" binding="strong" name="family" >
<string>Bitstream Vera Sans Mono</string>
</edit>
</match>
<alias>
<family>serif</family>
<prefer>
<family>Bitstream Vera Serif</family>
<family>SimSun</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Bitstream Vera Sans</family>
<family>SimSun</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Bitstream Vera Sans Mono</family>
<family>SimSun</family>
</prefer>
</alias>
<!--
Add by [email protected]
Artificial bold for fonts without a bold version.
--> <match target="font" >
<test compare="more" target="pattern" name="weight" >
<const>medium</const>
</test>
<edit mode="assign" name="weight" >
<const>bold</const>
</edit>
</match>
<!--
Add by [email protected]
Disable "Global Advance" for all CJK mono spacing fonts.
--> <match target="font" >
<test compare="contains" target="pattern" name="lang" >
<string>zh-tw</string>
<string>zh-cn</string>
<string>ja</string>
<string>ko</string>
</test>
<test compare="eq" name="spacing" >
<const>mono</const>
</test>
<edit mode="assign" name="globaladvance" >
<bool>false</bool>
</edit>
</match>
<!--
Add by [email protected]
Enable "hinting & autohint" for all fonts.
--> <match target="font" >
<edit mode="assign" name="hinting" >
<bool>true</bool>
</edit>
<edit mode="assign" name="autohint" >
<bool>true</bool>
</edit>
</match>
<dir>/usr/local/share/fonts</dir>
<dir>/usr/share/fonts</dir>
<dir>/usr/X11R6/lib/X11/fonts</dir>
<dir>/usr/lib/X11/fonts/misc</dir>
<dir>/usr/lib/X11/fonts/100dpi</dir>
<dir>/usr/lib/X11/fonts/75dpi</dir>
<dir>/usr/lib/X11/fonts/Type1</dir>
<dir>/usr/lib/X11/fonts/Speedo</dir>
</fontconfig>