中文字型完全解決方案

作者:螢火飛       最近更新日期:2002-6-16
附註:本文為自由文件,歡迎轉載,轉載不需與本人聯繫,但請註明出處。
您也可以將本頁打包帶回去慢慢看 ^^

系統字型管理

  • 檢查 XFree86 版本
  • 取得並安裝 ttfm 套件
  • 修改 ttfm 套件中附帶的 xttfm.ttfm修正英文字距過大的瑕疵
  • ttfm 來管理字型
  • 改用 XFree86 自己的 xtt(X TrueType )
  • 變更系統預設字型

Mozilla 的字型解決方案

  • Mozilla 的字型設定
  • Mozilla JAVA 中文顯示問題

Open Office 的字型解決方案

  • 動手為 Open Office 美容(步驟一)
  • 動手為 Open Office 美容(步驟二)
  • 動手為 Open Office 美容(步驟三)
  • 動手為 Open Office 美容(步驟四)
  • 動手為 Open Office 美容(步驟五)
  • 動手為 Open Office 美容(步驟六)
  • 動手為 Open Office 美容(收尾工作)

檢查 XFree86 版本

在開始字型管理之前,請先檢查一下您的 XFree86 版本,本文所有過程,
皆以 XFree86 4.0 以上版本為基礎,最近的版本是 4.2.0。


# X -version

XFree86 Version 4.2.0 (Red Hat Linux release: 4.2.0-8) / X Window System
(protocol Version 11, revision 0, vendor release 6600)
   :
   :
   :

注意!X 是大寫!!


如果您的版本大於 4.0 的話,可以跳過以下這節。

改用 XFree86 4:

不幸您的 XFree86 小於 4.0 版,也不必太緊張,翻出您的顯示卡說明書,
找找這張顯示卡是否支援 VESA 模式,如果可以,那麼,恭喜,您還是
可以改用 XFree86 4.0 版的 vesa 驅動程式,來使用 XFree86 4.0 的新功能。

一般來講,當您安裝了系統之後(RedHat、Mandrake、SUSE......),應該
同時有兩種 XFree86 版本(3.3.x/4.x),如果不確定的話,請檢查
/usr/X11R6/bin/ 是否有 XFree86 這個程式,有的話,就沒問題,如果沒有,
請從您的安裝光碟安裝以下幾個套件。

# rpm -Uvh XFree86-100dpi-fonts-4* XFree86-tools-4* XFree86-font-utils-4* \
XFree86-base-fonts-4* XFree86-libs-4* XFree86-xfs-4* XFree86-4* XFree86-xdm-4* \
XFree86-devel-4* XFree86-75dpi-fonts-4* XFree86-twm-4*


接著,修改一下 X 的連結
# cd /usr/X11R6/bin/
# ln -fs XFree86 X
# cd /etc/X11/
# ln -fs /usr/X11R6/bin/XFree86 X

然後,修改 /etc/X11/XF86Config-4 這個檔案
# vi /etc/X11/XFree86-4

加入下面這一段
Section "Device"
Identifier "VESA"
Driver "vesa"
EndSection


再往下找下面這一段
Section "Screen"
Identifier "Screen0"
# 把 Device 改成 VESA
Device "VESA"
Monitor "My Monitor"
DefaultDepth 16
Subsection "Display"
Depth 16
Modes "800x600" "1024x768"
EndSubSection
EndSection



存檔後,您就有 XFree86 4 可用了,如果不想那麼麻煩的話,您也可以從
本站下載 XF86Config-4.vesa.gz 這個檔案,放到 /etc/X11/ 這個目錄下:


# cd /etc/X11/
# gunzip XF86Config-4.vesa.gz

先備份原來的 XF86Config-4
# mv XF86Config-4 XF86Config-4.bak

改用新的 XFree86-4
# cp XF86Config-4.vesa XF86Config-4


好了!請重新啟動您的系統吧!!



附加說明:

如果您是使用筆記型電腦,而又無法驅動顯示卡的話,也可以用 XFree86 4
的 VESA 驅動程式,若還是不行的話,改用 framebuffer 驅動程式試試看,
改用 framebuffer,手續比較複雜一點。


首先,在 /etc/lilo.conf 中增加一行
vga="788" ←(800x600 畫面大小)
vga="791" ←(1024x768 畫面大小)
這要看您的螢幕解析度可以到哪一種了,請選擇一種

然後 # lilo -v -v -v
重新啟動後,按 Ctrl+X 鍵,切換到文字開機模式
在 LILO: 提示下輸入 linux single
進入單人模式

先看看有沒有下面這個節區
Section "Device"
Identifier "Linux Frame Buffer"
Driver "fbdev"
EndSection

如果沒有的話可以將上面那段複製到 Screen 節區之前

然後找到 Section "Screen" 這個節區
把 Device 註解起來(前頭加上 "#" 字號)
增加一行新的 Device "Linux Frame Buffer"
最後存檔,
好了!請重新啟動您的系統吧!!


若您還是懶得修改 XF86Config-4 的話,請下載 XF86Config-4.fb.gz 吧!
參考 vesa 的解壓縮更改方式,改掉您的 XF86Config-4。


取得並安裝 ttfm 套件

截至筆者寫該篇文章止,ttfm 套件最新版本是 1.0.6。

您可以到 ftp://cle.linux.org.tw/pub/CLE/i386/RedHat/RPMS/ 去下載 ttfm-1.0-6.i386.rpm,
或是到各大學的 ftp 網站仔細找找,依據 CLE 網站的提示,列出了下列地點:

台大計中 CLE 主站:ftp://cle.linux.org.tw/pub/CLE/
中研院 TLUG 站:ftp://tlug.sinica.edu.tw/pub3/CLE/gaga/

Mirror站台:
中研院:ftp://linux.sinica.edu.tw/CLE/CLE/

交通大學:
ftp://linux.nctu.edu.tw/dists/CLE/
ftp://linux2.nctu.edu.tw/dists/CLE/
ftp://linux.csie.nctu.edu.tw/distributions/CLE/

中山大學:
ftp://ftp.nsysu.edu.tw/Linux/CLE/CLE/
ftp://ftp.cdpa.nsysu.edu.tw/pub/CLE/CLE/

中央大學:ftp://ftp.ncu.edu.tw/Linux/distributions/CLE/
成功大學:ftp://ftp.ee.ncku.edu.tw/pub/Linux/CLE/CLE/
中華大學:ftp://ftp.chu.edu.tw/Linux/CLE/
東華大學:ftp://ftp.ndhu.edu.tw/Linux/CLE/CLE/
輔仁大學:ftp://ftp.tku.edu.tw/OS/Linux/distributions/CLE/gaga/
台北科技大學:ftp://ftp.ntut.edu.tw/OS/Linux/CLE/CLE/
台灣科技大學:ftp://ftp.ntust.edu.tw/unix/linux/CLE/gaga/
中正理工學院:ftp://ftp.ccit.edu.tw/OS/Linux/CLE/CLE/

當您取回了 ttfm 套件後,以 root 身份安裝它
(接下來要做的其他變動,也都是以 root 身份進行喔)

# rpm -Uvh ttfm*



修改 ttfm 套件中附帶的 xttfm.ttfm修正英文字距過大的瑕疵

請先從本站下載 xttfm.ttfm.gz 這個檔案。並且將它放到 /usr/share/fonts/install/ 這個目錄下,
做如下處置:

# cd /usr/share/fonts/install/
先備份原來的檔案
# mv xttfm.ttfm xttfm.ttfm.bak
再解壓縮修改過的檔案
# gunzip xttfm.ttfm.gz

改成可執行檔
# chmod +x xttfm.ttfm



經過了以上步驟,再以 ttfm 管理的字型,便不會有英文字距太大的情況出現。
如果您先前有用 ttfm.sh 新增過字型,出現某些 SIZE 英文字距過大,您可以先
移除原來安裝過的字型,再安裝一次字型即可。

# cd /字型路徑/

# ttfm.sh --remove 字型檔案名稱

(也許有人
要問:為什麼會有某些英文 SIZE 過大?有些卻不會?)

問得好!!筆者也是經過一番苦思,再加上不斷測試,大體上已經知道是怎麼
一回事,不過,不要怪筆者藏私,這不是三言兩語可以說盡的,何況,筆者尚
未完全融會貫通,若是隨便說說,怕會誤人子弟,總之呢!是 encoding 的問題。

有興趣的話,您可以看一下 xttfm.ttfm 的內容,在 install_xfont() 這個函數中,有
一段以 ######################## 標註起來的內容,那是筆者自行加上的,聰明
的您一看,就什麼都明白了 ^_^


用 ttfm 來管理字型

安裝好了 ttfm 之後,就可以用 ttfm.sh 這個 Shell Script 來安裝新字型了。
這裡是以 Windows 的 mingliu.ttc(新細明體)為例,這是最多人想要安裝
的字型了,接著說明如何使用 ttfm。


# ttfm.sh --add /路徑/mingliu.ttc

註(1):"/路徑/" 是您 mingliu.ttc 完整的路徑 ,如果您是從 Windows 直接複製的話,檔名也許是 Mingliu.ttc,請注意大小寫。

註(2):用 ttfm.sh --help 可以看到更多的用法。


(什麼!?就這樣?你騙我!)
沒有!我沒騙你,真的,就是這麼 Easy ^_^

這道指令執行完後,會將 mingliu.ttc 複製到 /usr/share/fonts/ttf/ 這個目錄下,
並且在 /usr/X11R6/lib/X11/fonts/TrueType/ 建立連結以及 fonts.alias、fonts.dir
、fonts.scale 等相關設定檔,您可以去看看。


改用 XFree86 自己的 xtt(X TrueType )

系統預設是使用 xfs(X Font Server)。這兩種字型顯示程式,各有優劣點,
我們一般只是想在桌面上顯示字型而已,實在不必用到 xfs 這樣的字型伺服
器。況且,xtt 比 xfs 速度稍快,也較為節省系統資源。

首先,修改 /etc/X11/XF86Config-4 這個檔案。

# vi /etc/X11/XF86Config-4

找到 Section "Files" 以及 Section "Module" 這兩個節區,以下是筆者自己的檔案內容,您可以視情況自行刪改,一般而言,這樣很足夠了。


Section "Files"
FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/ja/TrueType"
FontPath "/usr/share/fonts/zh_TW/TrueType"
# FontPath "unix/:7100"
EndSection

註:您可以發現,筆者將 FontPath "unix/:7100" 那一列註解起來,因為我們已不再需要 xfs 服務了。


Section "Module"
Load "dbe"
Load "GLcore"
Load "dri"
Load "glx"
Load "extmod"
# Load "freetype"
# Load "type1"
Load "xtt" #←加入這一列
EndSection

細心的您,是否發現,筆者的 Section "Files" 中,沒有任何 Type1 的字型,還有 Section "Module" 中,將 Load "type1" 也註解起來,為什麼呢?

這是因為,在 KDE 3.0 中,若使用 type1 字型,會造成 KDE 莫名其妙 crash 掉,通常發生在改變字型或找不到應用字型時發生,不信的話,您若裝有 OpenOffice 1.0 ,您試試看拉一下字型選單,就知道筆者所言非虛了。

據筆者推測,可能是 KDE 3.0 與 XFree86 衝突造成的,看看下一版的 KDE 會不會改善這個問題。



當您修改完 /etc/X11/XF86Config-4 之後,記得存檔,請接著請執行 setup 指令
(用 root 身分沒忘了吧),選擇『System services』,您會看到系統全部的 Services
,前面有 "*" 號的(按 Space 鍵就可以切換狀態),就是系統啟動後會馬上執
行的,您必須找到 xfs 這個 Service,將它取消,這樣,下次系統啟動後,就不
會執行 xfs,請記住,一定要取消唷。



好了,現在可以重新啟動系統了 ^_^


# shutdown -r now



變更系統預設字型

一、GNOME

GNOME 只要修改 /etc/gtk/gtkrc.zh_TW.big5 這個檔案。

# vi /etc/gtk/gtkrc.zh_TW.big5

找到下面這一段,插入一列(黃色那一列)

style "gtk-default-zh-tw" {
fontset = "-adobe-helvetica-medium-r-normal--16-*-*-*-*-*-iso8859-1,\
-DynaLab-MingLiU-medium-r-normal--16-*-*-*-c-*-big5-0,\
-taipei-*-medium-r-normal--*-*-*-*-*-*-big5-0,\
-*-*-medium-r-normal--16-*-*-*-*-*-big5-0,*-r-*"



修改完畢後存檔,登出 GNOME 再登入,您就會發現,所有的系統字型,全部
換成了細明體字了。見下圖:



二、KDE:

KDE 的使用者就比較吃香啦!登入 KDE 後,執行『KDE 控制中心』,將所有字型統統指
定為 Mingliu [Aliasdynalab] 16,就大功告成了,是不是變得漂亮多了呢,這裡不建議使用
「平滑字型」,看起來糊糊的,當然!這只是筆者個人喜好而已啦。見下圖:



如果您之前,曾經以 KDE 3.0 的『字型安裝程式』安裝了細明體的話,記得還要用『字型安裝程式』
將安裝過的中文字型移除,否則,很可能會造成細明體字英數字插空白的情況。真的要是這樣,還要
記得把您的 ~/.xftcache 也一起移除。


Mozilla 的字型設定

Mozilla 的字型設定,您可以執行 Mozilla 後,在功能表的『編輯』→『個人功能設定』中指定,如下圖所示:



這樣,再用 Mozilla 瀏覽網頁,是不是比較順眼了呢,以下是瀏覽中時電子報的情形。




Mozilla JAVA 中文顯示問題

用 Mozilla 瀏覽含有 JAVA 的網頁時,如果您是下載 Netscape 的 Java plugin,您將會發現,
中文字的顯示,變得支離破碎,慘不忍睹。這是 JAVA 1.3 版的問題,要讓中文可以正常顯
示,就必須下載 Java 1.4 以上的版本。

您可以到 http://java.sun.com/j2se/1.4/download.html 下載最新的版本,不論是 sdk 或 jre 都可以,
以筆者為例,下載的是 j2sdk-1_4_0_01-linux-i586-rpm.bin 這個檔案,這是一個可執行檔。


先將這個檔案,改成可執行。
# chmod +x j2sdk-1_4_0_01-linux-i586-rpm.bin

然後執行這個檔案
# ./j2sdk-1_4_0_01-linux-i586-rpm.bin

會出現一段聲明,您看完後,輸入 yes 即可。這樣,會得到一個叫做 j2sdk-1_4_0_01-fcs-linux-i386.rpm 的 RPM 安裝套件,安裝它。
# rpm -Uvh j2sdk-1_4_0_01-fcs-linux-i386.rpm

然後,修改一下 Mozilla 的 java plugins:
1、以 RPM 方式安裝的 plugins 目錄如下:

# cd /usr/lib/mozilla/plugins
2、若是以 tar.gz 方式安裝的話,如下:
# cd /usr/local/mozilla/plugins
(請注意!!Mozilla 1.0 已經正式 Release 了,目錄名稱變成 mozilla-1.0.0

執行連結 java plugins
# ln -fs /usr/java/j2sdk1.4.0_01/jre/plugin/i386/ns610/libjavaplugin_oji.so libjavaplugin_oji.so


再來,從本站下載 font.properties.zh_TW.gz 這個檔案,這是一個筆者修改過的
Java 字型設定檔,細明體以及文鼎字型均適用,請將這個檔案複製到
/usr/java/j2sdk1.4.0_01/jre/lib/ 這個目錄下,然後解壓縮它。


# cd /usr/java/j2sdk1.4.0_01/jre/lib
# gunzip font.properties.zh_TW.gz



好了,這下子 Java 中文問題全部解決嘍,關掉您的 Mozilla,再開啟一次
Mozilla,去瀏覽含有 Java 的網頁,中文字不再是□□□了吧。您也可以
點選 Mozilla 的『工具』→『網頁開發』→『Java 主控台』,應該會如下圖所示。




Open Office 的字型解決方案




動手為 Open Office 美容(步驟一)

安裝好 Open Office 後,可以在選單中看到 OpenOffice.org 的選項,其中有個『印表機管理』
程式,其實,這個程式,不只可以管理印表機,也可以為 Open Office 管理字型喔,所以,第
一步,就是先執行這個程式。




動手為 Open Office 美容(步驟二)

接著,點一下左下角那個『字型(T)』的按鈕,出現下圖:



看到了嗎?甚至還出現中文字體呢 ^^,由於您尚未加入任何字型,所以這裡應該是空的。


動手為 Open Office 美容(步驟三)

接著,再點選右邊那個『新增(A)』的按鈕。



然後可以在『源目錄』中,輸入 "/usr/share/fonts/zh_TW/TrueType" 這樣,會看到兩個字型檔,這兩個
字型檔就是預設的文鼎字型了。

然後,按『全部選取』按鈕,再按『確定』按鈕,會回到步驟二的畫面,還要再點選一次左下角那個『
字型(T)』的按鈕,因為我們要加入「細明體」字。

好,再次於『源目錄』中,輸入 "/usr/share/fonts/ttf"(記得嗎,我們用之前用 ttfm.sh 將細明體字放到了
這兒),再按一下『確定』按鈕,回到步驟二的畫面後,就跟筆者的一樣了喔。


動手為 Open Office 美容(步驟四)

好了,我們做好了先期準備工作,可以開始為應用程式美容了。開啟『OpenOffice.org Writer』吧!
然後,點選『工具』→『選項』,出現如下圖的畫面:



先把『顯示比例』調整小一點,上圖為 90%,可以再小一點,這是暫時性動作,待會兒還要調回 100%
的。調整好了之後,再按一下『確定』按鈕。


動手為 Open Office 美容(步驟五)

回到了主畫面後,字型變小了,沒關係,再點選「工具」→「選項」,然後選「代替字型」,如下圖:



將「使用替代字型」打勾,依序依照下列方式一個一個做好(注意大小寫)


字型輸入 Albany 拉一下「更替成(P)」,選細明體,再按一下綠色勾勾。
字型輸入 Andale Sans UI 拉一下「更替成(P)」,選文鼎PL細上海宋,再按一下綠色勾勾。
字型輸入 Msung Light TC 拉一下「更替成(P)」,選文鼎PL細上海宋,再按一下綠色勾勾。
字型輸入"新細明體" 拉一下「更替成(P)」,選細明體,再按一下綠色勾勾。
字型輸入"標楷體" 拉一下「更替成(P)」,選文鼎PL中楷,再按一下綠色勾勾。



最後,確定一下,所有『自動』欄位是否都勾選了?


動手為 Open Office 美容(步驟六)

接著,先別急著按『確定』,再選『檢視』選項,我們還得把顯示比例調回來 100% 呢!



把『顯示比例』調回 100% 後,請記得,再把『顯示畫面』改成 OS/2,這時候,您就可以
按下『確定』按鈕啦!哇!終於完成啦!高興不高興呢 YA ^_^

動手為 Open Office 美容(收尾工作)

(什麼!?還有哇!哇哩勒 @*#&$#……)
對!再改一下 Open Office 的預設字型,才稱得上完美。



上面那個畫面,如何叫出來,不用我多講了吧 ^^ ,把『標準字型(西文)』以及『標準字型(中日韓)』,
統統改成您喜歡的字型(這裡用細明體)。大功告成。