5.5. 在 Xorg 使用字型

5.5.1. Type1 字型

由於 Xorg 內建的預設字型用在典型的桌面出版應用程式並不是很理想,大字型會呈現鋸齒狀邊緣,看起來很不專業,小字型幾乎完全看不清楚。不過,這裡有幾個免費高品質的 Type1 (PostScript®) 字型可用,且能容易的在 Xorg 使用。例如,URW 字型集 (Times Roman®, Helvetica®, Palatino® 及其他)。 Freefont 字型集 (x11-fonts/freefonts) 包含了更多的字型,但其中大部分是給圖形軟體如 GIMP 所使用的字型,並不能完全作為螢幕字型使用。此外,Xorg 可以簡單的設定使用 TrueType® 字型。更多有關本主題的詳細資訊,請參考 X(7) 操作手冊或 節 5.5.2, “TrueType® 字型”

要從 Port 套件集安裝上述的 Type1 字型集可執行以下指令:

# cd /usr/ports/x11-fonts/urwfonts
# make install clean

同樣的安裝方式也適用 Freefont 或其他字型集。要讓 X 伺服器偵測到這些新安裝的字型,可加入適當的設定到 X 伺服器設定檔 (/etc/X11/xorg.conf),內容為:

FontPath "/usr/local/share/fonts/urwfonts/"

或者在 X session 的指令列執行:

% xset fp+ /usr/local/share/fonts/urwfonts
% xset fp rehash

這樣便可,但在 X session 關閉時將會失效,除非將該設定加入啟動檔 (一般的 startx session 可在 ~/.xinitrc 設定,若透過圖型化登入管理程式如 XDM 登入時則在 ~/.xsession 設定)。第三種方式是使用新 /usr/local/etc/fonts/local.conf,如 節 5.5.3, “反鋸齒字型” 的示範。

5.5.2. TrueType® 字型

Xorg 內建支援繪製 TrueType® 字型,目前有兩個模組可以支援這項功能。在本例中使用 freetype 模組,由於此模組與其他字型繪製後端較為一致。要開啟 freetype 模組只需要將下行加入到 /etc/X11/xorg.conf 中的 "Module" section。

Load  "freetype"

現在要建立一個儲存 TrueType® 字型的目錄 (例如,/usr/local/share/fonts/TrueType) 然後複製所有 TrueType® 字型到這個目錄。要注意 TrueType® 字型並無法直接取自 Apple® Mac®,Xorg 使用的字型必須為 UNIX®/MS-DOS®/Windows® 的格式。檔案複製到讓目錄之後,使用 mkfontdir 來建立 fonts.dir 來讓 X 字型繪製程式知道安裝了新的檔案。mkfontdir 可用套件的方式安裝:

# pkg install mkfontdir

然後在目錄中建立 X 字型檔的索引:

# cd /usr/local/share/fonts/TrueType
# mkfontdir

接著加入 TrueType® 目錄到字型路徑。這個動作與 節 5.5.1, “Type1 字型” 中所介紹的方式相同:

% xset fp+ /usr/local/share/fonts/TrueType
% xset fp rehash

或直接加入 FontPath 一行到 xorg.conf

現在 Gimp, Apache OpenOffice 以及其他 X 應用程式應可以辨識到已安裝的 TrueType® 字型。極小的字型 (以高解析度在網頁中顯示的文字) 與極大的字型 (在 StarOffice 中) 現在會看起來比較像樣了。

5.5.3. 反鋸齒字型

所有可在 /usr/local/share/fonts/~/.fonts/ 找到的 Xorg 字型均可在 Xft-aware 的應用程式使用反鋸齒的效果。大多最近的應用程式均為 Xft-aware 的,包括 KDE, GNOME 以及 Firefox

要控制那一些字型要做反鋸齒或設定反鋸齒的屬性,需建立 /usr/local/etc/fonts/local.conf 檔案 (若檔案存在則編輯)。在這個檔案中可以調整 Xft 字型系統的數項進階功能,本章節僅介紹部份簡單的項目,要取得進一步資訊,可參考 fonts-conf(5)

這個檔案必須使用 XML 格式,小心文字大小寫,且要確定所有標籤均有正常結尾。檔案的開頭使用常見的 XML 檔首,接著為 DOCTYPE 定義,然後是 <fontconfig> 標籤:

<?xml version="1.0"?>
      <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
      <fontconfig>

如同前面所提到的,所有在 /usr/local/share/fonts/~/.fonts/ 的字型均已在 Xft-aware 的應用程式做反鋸齒效果,若您想要加入除了上兩者以外的目錄,可加入下行設定到 /usr/local/etc/fonts/local.conf:

<dir>/path/to/my/fonts</dir>

加入新字型及額外的新字型目錄之後,您應執行以下指令來重新建立字型快取:

# fc-cache -f

反鋸齒效果會讓文字的邊緣變模糊,這會讓非常小的文字更能閱讀且去除大型文字的 鋸齒,但套用在一般的文字可能會造成眼睛的疲勞。要排除小於 14 點的字型大小使用反鋸齒效果,可加入這些行:

        <match target="font">
	    <test name="size" compare="less">
		<double>14</double>
	    </test>
	    <edit name="antialias" mode="assign">
		<bool>false</bool>
	    </edit>
	</match>
	<match target="font">
	    <test name="pixelsize" compare="less" qual="any">
		<double>14</double>
	    </test>
	    <edit mode="assign" name="antialias">
		<bool>false</bool>
	    </edit>
	</match>

反鋸齒所產生的間距對於部份等寬字型並不適合,尤其是在使用 KDE 時會發生問題。可能的修正方式是強制字型的間距為 100,可加入以下行:

       <match target="pattern" name="family">
	   <test qual="any" name="family">
	       <string>fixed</string>
	   </test>
	   <edit name="family" mode="assign">
	       <string>mono</string>
	   </edit>
	</match>
	<match target="pattern" name="family">
	    <test qual="any" name="family">
		<string>console</string>
	    </test>
	    <edit name="family" mode="assign">
		<string>mono</string>
	    </edit>
	</match>

(這會設定等寬字型的其他常用名稱為 "mono"),然後加入:

         <match target="pattern" name="family">
	     <test qual="any" name="family">
		 <string>mono</string>
	     </test>
	     <edit name="spacing" mode="assign">
		 <int>100</int>
	     </edit>
	 </match>      

部份字型,如 Helvetica,在使用反鋸齒時可能會發生問題,通常會呈現像垂直切成兩半的字型,最差還可能會導致應用程式當掉。要避免這個問題,可考慮加入以下設定到 local.conf:

         <match target="pattern" name="family">
	     <test qual="any" name="family">
		 <string>Helvetica</string>
	     </test>
	     <edit name="family" mode="assign">
		 <string>sans-serif</string>
	     </edit>
	 </match>        

編輯 local.conf 完之後,請確認有使用 </fontconfig> 標籤結尾,若沒使用會讓您的更改直接被忽略。

最後,使用者可以透過個人的 .fonts.conf 檔案來加入自己的設定。要加入個人設定,每位使用者只需簡單的建立 ~/.fonts.conf,這個檔案也同樣需要為 XML 格式。

最後一點: 若有使用 LCD 螢幕,可能會想要使用子像素取樣 (Sub-pixel sampling),這基本上會分開處理 (水平分隔) 紅、綠、藍色彩組成來提高垂直解析度,結果可能是無法預料的。要開啟這個功能,加入下行到 local.conf 的任一處:

<match target="font">
	     <test qual="all" name="rgba">
		 <const>unknown</const>
	     </test>
	     <edit name="rgba" mode="assign">
		 <const>rgb</const>
	     </edit>
	 </match>

注意:

依據不同的顯示器類型,rgb 可能會需要更改為 bgr, vrgbvbgr: 可實驗看看然後看那一個效果最好。

本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

若有 FreeBSD 方面疑問,請先閱讀 FreeBSD 相關文件,如不能解決的話,再洽詢 <questions@FreeBSD.org>。

關於本文件的問題,請洽詢 <doc@FreeBSD.org>。