作者: Doug Holland,
[email protected]
譯者: Yu-Chia Chang,
[email protected]
1. 簡介
在我必須處理的一堆討厭事中,有一項就是沒完沒了的 X 缺省字體和字體設定 (我專指 XFree86,其它的 X 也許比較好)。有些程序缺省使用固定寬度字體 (fixed width fonts),但其實可變寬度字體 (variable width fonts) 較為適當。而有些程序使用不可思議的小字,而無法辨認。伴隨 XFree86 而來的字體根本不適於使用。它的確有還算體面的 courier 字體,但是它附的 Times 和 Helvetica 只是簡單的點陣字,當縮放的時候就產生鋸齒狀。
本 HOWTO 嘗試說明如何調整各式各樣的字體設定,如何安裝新字體,和其它可以大大改善 X window 字體的外觀和可讀性的方法。這是藉由調整 XF86Config 檔中的字體路徑 (FontPath),在 startx 或 xdm 加上 X server 命令列選項(command line options),加入新的字體,安裝 TrueType 字體服務器 (font server) xfstt,和使用 K Desktop Environment 1.1 的功能來調整許多應用程序的字體設定,包含設定讓非 KDE 應用程序的顏色和字體能夠與 KDE 一致。
歡迎評論,更正,增補和批評。您可以在
[email protected] 聯絡到我。
1.1 更新紀錄
* 0.1: Feb. 21, 1999: 第一次公布。
* 0.11: Feb. 27, 1999: 放入 copyright。
* 0.12: Jun. 10, 1999: 放入請求援助。
* 0.20: Sep. 14, 1999: 為 redhat 使用者放入有關於 xfs 的一節。感謝 Hal Burgiss 的貢獻。
* 1.0: Nov. 23, 1999: 將文章轉為 SGML 格式,傳送給 Linux Document Project。將請求援助的部份移除。
2. XF86Config 檔
要想解決字體的問題,首先先得看看 XF86Config 檔。(通常放在 /usr/X11/lib/X11/XF86Config 或 /etc/X11/XF86Config)。您猜到了嗎? 這個檔中關於字體最重要的部份就是 FontPath。在我們研究它之前,最好先檢查 X 的其它設定。錯誤的屏幕設定比錯誤的字體設定更令人頭痛。確定您屏幕的更新頻率 (refresh rate) 在正常使用范圍中已經設到最高 (85Hz 很好,75Hz 普通,60 Hz 很不舒服)。
2.1 設定 FontPath
用您最順手的文字編輯器來編輯 XF86Config。在文件的開頭,您應該會看到類似下面的東西:
FontPath "/usr/X11R6/lib/X11/fonts../misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath 告訴 X 到那裡去找在屏幕上顯示用的字體。順序是很重要的,當一個 X 的應用程序向 X 要求使用一些字體,X server 通常偏好使用正在用的字體。然後它去看看 FontPath,使用最先看到能滿足 X client 要求的字體。
缺省的 FontPath 通常將 75dpi 的字體放在 100dpi 的字體前面。若您有一台高解析度的屏幕,這表示非常小的字。第一個你要用的方法就是將 75dpi 和 100dpi 的 FontPath 對調。
FontPath "/usr/X11R6/lib/X11/fonts../misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
然後指出您偏好使用不能縮放的點陣字。若您曾經使用 Netscape 或是其它使用較大字體來顯示標題的程序,您將會發現這些字體呈現鋸齒狀的。這樣很丑,需要修改。所以在 misc,100dpi 和 75dpi 的最後加上 :unscaled。若您想要的話,您也可以同時使用能縮放和不能縮放的字,只要將不能縮放的字的 FontPath 放在前面,告訴 X 說若可能的話,盡量使用不能縮放的字。
FontPath "/usr/X11R6/lib/X11/fonts../misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts../misc"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
再做了這些改變後,重新啟動 X。桌面是不是已經比較漂亮呢?
3. X server 命令列選項 (command line options)
下面一件要做的事是調整 X server 的命令列選項。您將會想要用 -dpi 來指定顯示的解析度是每英□幾點。現在很多的系統使用高解析度的顯示器,可能它們將會要用 100dpi。
若您在 console 下啟動 X,鍵入
startx -dpi 100
若您用 xdm 這種圖形登錄界面,您需要編輯您的 /usr/X11/lib/X11/xdm/Xservers 檔。在裡面有 Xserver 的命令列。我的文件裡有下面這一行
:0 local /usr/X11R6/bin/X -dpi 100 -gamma 1.6
您可在 X 和 Xserver 的 manpage 中找到更多的信息。
4. TrueType 字體 (少數 Windows 做的很好的事情)
因為在 Redmond 的那群家伙非常關心他們軟件的外觀而不是內容,他們在 Windows 裡加上對 TrueType 字體的支持。Window 95 和其它的 Windows 都內含 Arial,Times New Roman,和 Courier New。他們約等於 Helvetica,Times,和 Courier。TrueType 字體是能縮放的,所以它們在放大時很好看,而它們也被好好的調整過,故在縮小的時候依然可讀。有許多的 Windows 應用程序附送好幾打的 TrueType 字體。先別急著把您的 Windows CD 拿去微波,您得先拿到這些字體。
4.1 xfstt
不幸的是 XFree86 並沒有內部支持 TrueType 字體,所以必須自己加入。最簡單的方式使用 xfstt,一個沒镅的 TrueType 字體服務器。(譯注: 這裡沒镅是 free,嚴格來說,並不是沒镅,而是自由的意思)
Installation
xfstt 安裝非常容易。首先從網站上下載 tarball。最新的版本是 http://metalab.unc.edu/pub/linux/X11/fonts/Xfstt-0.9.10.tgz
有了 tarball後,把它解開
tar -zxvf Xfstt-0.9.10.tgz
然後編譯和安裝它。INSTALL 檔有簡單的說明。有個不用大腦的方法 make; make install 就可以了。當做好後,把由各式管道取得的 TrueType 字體拷貝到 /usr/ttfonts 就可以了。鍵入下面的指令來啟動 xfstt
xfstt --sync # 更新 xfstt 的字體數據庫
xfstt & # 在背景執行 xfstt
然後鍵入
xset +fp unix/:7100 # 讓 X 使用 xfstt
或是在您的 XF86Config 檔中加入下面的指令,讓 X 使用這項服務
FontPath "unix/:7100"
調整缺省字體的大小
若您的 TrueType 字體顯得相當小,下面的指令可能有幫助
在 X server 命令列加上 -dpi (請參考第 3 章)。
使用 --res 來告訴 xfstt 增加缺省的解析度。用下面的指令
xfstt --res 120
4.2 xfs
xfs 是另一種字體服務器的選擇。它已經包含在以 RedHat 為基礎的 distribution 中。xfs 是基於 FreeType Font library,提供了類似於 xfstt 的功能。xfs 不只能處理 TrueType 和 Type 1 字體,也可以對付原本的 X 字體。
安裝
第一步是將 TrueType 字體加入您的 linux 裡。su 為超級使用者,建一個目錄來存放這些字體:
mkdir /usr/share/fonts/ttfonts
然後將字體放入這個目錄裡。您可以從您的 Windows 系統中拷貝過去
cp /mnt/win/path_to_fonts/*ttf /usr/share/fonts/ttfonts/
或是從 Microsoft 直接下載。
這些字體是自解壓縮的 zip 檔。您仍可在 linux 中安裝
unzip <FONT.EXE>
注意字體的文件名必須小寫。一個快速又容易的轉換方法是將他們拷貝到一個 DOS(FAT16) 文件系統中,然後再拷貝回來。DOS 不處理大寫。另一個較像 linuxer 會用的方法是先進入到存放字體的目錄下,然後鍵入:
ls *TTF while read f
do
[ -f "$f" ] && mv -f "$f" "`echo "$f" tr A-Z a-z`"
done
您在鍵入每一行得時候會有 ">" 的提示符號,在上述每一行的最後按下 return。 注意標點符號 -- 那些 "backquotes" 很重要。當 TrueType 字體正確安裝後,以超級使用者執行:
ttmkfdir -o fonts.scale
mkfontdir
當您字體目錄下的內容改變後,重新執行上面的命令。接下來,編輯您的 xfs 字體設定文件 /etc/X11/fs/config 在您字體表中加入您的 TrueType 字體:
catalogue = /usr/X11R6/lib/X11/fonts../misc:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts../misc,
/usr/X11R6/lib/X11/fonts/Type1,
/usr/X11R6/lib/X11/fonts/Speedo,
/usr/share/fonts/default/Type1,
/usr/share/fonts/ttfonts,
/usr/X11R6/lib/X11/fonts/100dpi,
/usr/X11R6/lib/X11/fonts/75dpi
或是您也可以用 'chkfontpath --add <font>' 命令來加入字體。當使用時,您或許也會想要更改您的字體的缺省點數。
default-point-size = 140
這讓我從缺省的 12 點字變為 14 點字。有些 X 的應用程序使用這個,有些則否。接下來,確定您的 XF86Config 檔中的 FontPath 是
FontPath "unix/:-1"
注意 "unix/:7100" 也可以做到,但是在剛出來時無法使用。將所有的 FontPath 用 '#' 讓它變成注解,反正你也不用它們了。xfs 的 packages 應該和其它 XFree 的 packages 一起安裝了。要確定它是缺省的服務,您可以使用 'ntsysv' 或是
chkconfig --add xfs
現在 xfs 在您每一次開機的時候都會啟動。 現在重新啟動 X 來讀入新的 FontPath。用下面的的方式 啟動/重新啟動 xfs
/etc/rc.d/init.d/xfs restart
現在您應該有個可以使用的字體服務器了。您可以檢查那些字體有被使用
xlsfonts less
或用 xfontsel 甚至更好的 gfontsel 來檢查它們。
5. KDE
在這段日子裡,KDE 是在 linux 和 X 發生過最好的事情之一。它提供了一個一致的使用者界面,讓一般大眾能夠接觸 Linux。您可以在 http://www.kde.org/. 找到更詳細的數據。為什麼我會在這大大稱贊它呢? 這是因為 KDE 1.1 有個新特色,能夠讓您程序的字體和顏色與現在的 KDE 風格一致,這也包括非 KDE 的應用程序。
5.1 應用 KDE 的字體和顏色於非 KDE 的應用程序上
這很簡單。只要打開 KDE 的控制中心(Control Center)下面的 Desktop 下面的 style。那裡有個選項叫做 "Apply fonts and colors to non-KDE apps"(將字體與顏色應用到非 KDE 的應用程序),打開他,選 OK,這樣就好了! 下次您開啟許多的應用程序,它們就會像其它的 KDE 應用程序般,有相同的顏色與字體。有些人最喜歡這項特色,但若您不喜歡的話,您也可以將它關掉。
6. 在特定的應用程序中調整字體
6.1 Netscape Navigator/Communicator
Netscape Communicator 對於字體的問題相當的敏感。若您使用缺省的 FontPath,您的字體將會非常小非常丑。您第一件要去做的事情就是修改您的 XF86Config 檔中的 FontPath (參考第二章)。使用 100dpi 的字體大大的改善了可讀性。您也會想要去檢查在 Edit/Preferences/Appearance/Fonts 的字體設定。不選 Font 選項中的 "Allow Scaling" 可以讓點陣字不會鋸齒狀。
若您有 xfstt 或 xfs,Netscape 非常適合使用 TrueType 字體。然而,它不能得體的處理 xfstt 的銳角。在 Edit/Preferences 中,您可以將 TrueType 字體設為固定寬度或是可變寬度,然而當您關閉 Netscape 後,它將不記得您選取的字體點數。若您在開啟 X 時未用 -dpi 或是在 xfstt 未使用 --res,您的字體將會很小。當我用了上面兩個修正,TrueType 字體真的很棒!
6.2 WordPerfect
即將登場。
6.3 StarOffice
即將登場。
7. 致謝
本 HOWTO 是由 Doug Holland 所撰寫
Email:
[email protected]
WWW: http://www.frii.com/~meldroc/
外加 Hal Burgies 的貢獻。
感謝
* 在 comp.os.linux.x 的人們,他們在我剛開始研究這些的時候對我伸出援手。
* 讓這所有一切變為可能的 linux 社群。
* Microsoft 和 Apple: 他們提供了字體,美化了我的桌面。
6. 在特定的應用程序中調整字體
6.1 Netscape Navigator/Communicator
Netscape Communicator 對於字體的問題相當的敏感。若您使用缺省的 FontPath,您的字體將會非常小非常丑。您第一件要去做的事情就是修改您的 XF86Config 檔中的 FontPath (參考第二章)。使用 100dpi 的字體大大的改善了可讀性。您也會想要去檢查在 Edit/Preferences/Appearance/Fonts 的字體設定。不選 Font 選項中的 "Allow Scaling" 可以讓點陣字不會鋸齒狀。
若您有 xfstt 或 xfs,Netscape 非常適合使用 TrueType 字體。然而,它不能得體的處理 xfstt 的銳角。在 Edit/Preferences 中,您可以將 TrueType 字體設為固定寬度或是可變寬度,然而當您關閉 Netscape 後,它將不記得您選取的字體點數。若您在開啟 X 時未用 -dpi 或是在 xfstt 未使用 --res,您的字體將會很小。當我用了上面兩個修正,TrueType 字體真的很棒!
6.2 WordPerfect
即將登場。
6.3 StarOffice
即將登場。
7. 致謝
本 HOWTO 是由 Doug Holland 所撰寫
Email:
[email protected]
WWW: http://www.frii.com/~meldroc/
外加 Hal Burgies 的貢獻。
感謝
* 在 comp.os.linux.x 的人們,他們在我剛開始研究這些的時候對我伸出援手。
* 讓這所有一切變為可能的 linux 社群。
* Microsoft 和 Apple: 他們提供了字體,美化了我的桌面。
6.2 WordPerfect
即將登場。
6.3 StarOffice
即將登場。
7. 致謝
本 HOWTO 是由 Doug Holland 所撰寫
Email:
[email protected]
WWW: http://www.frii.com/~meldroc/
外加 Hal Burgies 的貢獻。
感謝
* 在 comp.os.linux.x 的人們,他們在我剛開始研究這些的時候對我伸出援手。
* 讓這所有一切變為可能的 linux 社群。
* Microsoft 和 Apple: 他們提供了字體,美化了我的桌面。