5.5. 在 Xorg 使用字型
前一頁 | 章 5. X Window 系統 | 下一頁

## 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® 字型”。

要由 Binary 套件安裝上述的 Type1 字型集可執行以下指令：

    # pkg install urwfonts

或由 Port 套件集編譯，可執行以下指令：

    # 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>` 標籤結尾，若沒有使用會讓所做的更改被忽略。

使用者可透過建立自己的 `~/.config/fontconfig/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`, `vrgb` 或 `vbgr`：可實驗看看然後看那一個效果最好。

前一頁 | 上一層 | 下一頁
5.4. Xorg 設定 | 起始頁 | 5.6. X 顯示管理程式

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

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