HowtoInstallFontsbyHand

出自Ubuntu 正體中文 Wiki

跳轉到: 導航, 搜尋


目錄

前言

對於某些人而言,也許無法滿意系統提供的字型,那麼您也可以自行手動安裝字型。以下內容經原作者 Tetralet 同意後修改,請見原著 今天的 Tetralet 又在唧唧喳喳了

概論

在 X Window System 上,應用程式顯示字型的方式不外乎兩種:使用 X11 Core Font 或是 Xft。

X11 Core Font

X11 Core Font 是在 X Window System 顯示字型時常見的傳統方式。它所支援的字型主要像是 XTT、Freetype、PS 這類固定大小的點陣字型,不支援 Anti-Alias(反鋸齒)效果,也無法隨意放大縮小字型,但優點為顯示速度極快。常見於 Gtk+ 1.x 及一些 X Terminal Emulator 上。

Xft

Xft 是新一代的字型顯示方式,它所支援的字型主要的是市面上常見的 TTF 這類支援 Anti-Alias、可隨意放大縮小的字型。優點是美觀、且在設定時極具彈性。常見於 Gtk+ 2.0 及 QT Based 等等應用程式上。

註:在 Debian GNU/Linux 與其衍生系統裡,軟體將會交由 deb 管理程式統一管理。一般而言,除了管理者之外,個人建議儘量不要修改系統參數設定以保持系統之純淨度。所以本系列文章將會在不影響系統環境之前提下,儘量在 $HOME 裡實作。

註:由於在 Ubuntu 裡,已使用 UTF-8 作為預設的編碼,所以下文中的說明將以 UTF-8 環境為主。

安裝與設定 Xft

設定螢幕解析度

Xft 字型大小和 X Window System 所使用螢幕 DPI 解析度息息相關。為了避免造成不必要的困擾,建議在 ~/.xserverrc 直接指定螢幕的 DPI 解析度為 75:

#!/bin/sh

exec /usr/bin/X11/X -dpi 75 -nolisten tcp

而選取 75 這個數值的主要原因之一為儘量和 Microsoft Windows 系統保持一致。

安裝 Xft 字型管理程式

在 Debian GNU/Linux 與其衍生發行版裡,要安裝 Xft 字型管理程式只要一行指令就夠:

aptitude install libfreetype6 fontconfig libXft2

而在安裝 X Window 的過程中,應該已經安裝了以上套件才是。

安裝官方所提供的 TTF 字型

以下所列出的是一些由 Debian 官方所提供的、建議中文桌面使用者安裝的 TTF 字型。

  • ttf-arphic-uming:文鼎PL細上海宋Uni (AR PL ShanHeiSun Uni),包含了中文簡、繁體及部份 Unicode 文字。少見的內嵌點陣字型。
  • ttf-arphic-bkai00mp:文鼎PL中楷 (AR PL KaitiM Big5),只包含了中文 Big5 碼文字。少見的中文等寬字。
  • ttf-kochi-gothic:東風ゴシック (Kochi Gothic),日文字型。
  • ttf-kochi-mincho:東風明朝 (Kochi Mincho),日文字型。
  • ttf-thryomanes:Thryomanes,包含了一些像是『KK 音標』之類罕見字元的字型。

而這些字型也是一行指令搞定:

aptitude install ttf-arphic-uming ttf-arphic-bkai00mp ttf-kochi-gothic ttf-kochi-mincho ttf-thryomanes

另外,在 Xft 裡也可以抓到 X11 字型,所以 Xft 能管理的字型其實並不僅限於 TTF 字型。 檢查系統上可用的 FontConfig 字型

在安裝完 TTF 字型後,您可以利用 fc-list 指令來得知系統上已安裝了哪些字型。例如以下指令可以找出在系統裡已安裝的文鼎字型:

fc-list | grep "文鼎"

沒有意外的話,您應該可以看到 "文鼎PL細上海宋" 及 "文鼎PL中楷" 出現在列表裡。

設定 ~/.fonts.conf

而您可以藉由修改 ~/.fonts.conf 的方式來設定 FontConfig 字型。而 ~/.fonts.conf 這個檔案可以複製自系統的 /etc/fonts/fonts.conf 再加以修改。 可以參考如何運用 fontconfig 繪製字體顯示

True Type Font

自行安裝 TTF 字型

目前測試能成功的字型有限,例如 Windows 下的金梅字型、部分華康字型等無法使用,倒是文鼎字型都能成功。

以下以 GPL 授權的 cwTeX 字型 http://cle.linux.org.tw/fonts/cwttf/ 為例

首先,先建立一個放向量字的子目錄:

  • 如果只是想只個人使用,請將 /usr/local/share/fonts 更改成 ~/.fonts/ ,並將 sudo 拿掉。
sudo mkdir -p /usr/local/share/fonts/cwTeX

將您所下載到的字型搬到這個目錄裡:(以 cwTeX TTF 粗黑體為例)

sudo mv cwheib.ttf /usr/local/share/fonts/cwTeX

然後,更新 FontConfig 字型資料庫:

sudo fc-cache -f -v

接下來您可以由 fc-list 來取得已經建立的資料。例如: fc-list | grep cwTeX 應該能看到這些新加入的 TTF 字型了:

cwTeX 粗黑體,cwTeXHeiBold:style=Medium

TTF 字型編輯程式

另外,您也可以利用像是 fontforge 之類的 TTF 字型編輯程式來整合 TTF 字型、或是自行繪製 TTF 字型。

設定應用程式使用 Font Config

Gtk+ 2.x 應用程式

您可以修改 ~/.gtkrc-2.0 如下來設定 Gtk+ 2.x 應用程式所預設使用的字型:

gtk-font-name="AR PL ShanHeiSun Uni 16"

GAIM

如果您有上 IRC,您可能希望 GAIM 使用等寬字。所以您可以修改 ~/.gaim/gtkrc-2.0 如下來設定 GAIM 所預設使用的字型:

gtk-font-name="AR PL New Sung Mono 16"

Firefox

Mozilla 系列程式,如:Mozilla、Firefox 及 Thunderbird 等等,雖然都有提供字型設定介面,但由於它們在表面上是 Gtk+2 程式,所以它們的選單字型基本上還是由 ~/.gtkrc-2.0 所控制的。您可以藉由修改 ~/.gtkrc-2.0 來控制 Firefox 的選單字型。

在某些版本裡的Firefox的選單字型明顯比在 ~/.gtkrc-2.0 裡所設定的值還大上許多,您可以藉由在 about:config 裡將 layout.css.dpi 的值設定為 0 來解決這個問題。

如果您覺得不滿意,您還可以修改您的 ~/.mozilla/firefox/*Profile*/chrome/userChrome.css 如下:

* {
font-family: "AR PL ShanHeiSun Uni" !important;
font-size: 16px !important;
font-style: regular !important;
}

這樣所有 Firefox 的介面都用 "AR PL ShanHeiSun Uni, 16px" 來顯示了。

但如此設定之後,如果您有安裝 Download Statusbar 這個元件的話,您會發現它的【剩餘時間】及【傳輸速度】這兩個文字也受到以上設定的影響而變得過大。您可以針對這兩個元件的字型大小再加以設定:

.db_progressIndicator {
font-family: "Fixed" !important;
font-size: 10px !important;
}

QT Based 程式

QT Based 所使用的字型是由 kcontrol、qtconfig-qt3、qtconfig-qt4 等數個程式管理的。建議您安裝以下套件:

aptitude install kcontrol qt3-qtconfig qt4-qtconfig

並由這些設定程式來管理您的 QT Based 應用程式所使用的字型。

注意:由於 QT Based 程式對於 Unicode 文字支援並不是很好,建議能安裝並使用 cwTeX TTF 明體 (GPL)、CNS 全字庫正楷體 (non-free)、香港標準宋體 (等寬字、non-free) 等 Unicode 字型。

另外,以上程式在設定時很可能會把您的 ~/.fonts.conf 改得亂七八糟。建議能在把 ~/.fonts.conf 備份之後再執行以上設定程式。

OpenOffice.org

OpenOffice.org2 現已改由直接取用系統字型,所以使用者應該不必去費心設定 OpenOffice.org2 的字型了。

MLTerm

MLTerm 是現今 GNU/Linux 裡少數能完全支援 UTF-8 的 X Window Emulator。您可以在 ~/.mlterm/aafont 裡設定 MLTerm 在啟用了 Anti-Alias 字型時所使用的字型名稱:

ISO10646_UCS2_1=Kochi Gothic-iso10646-1;
ISO10646_UCS2_1_BIWIDTH=HanWangHeiLight-iso10646-1;

但在 MLTerm 裡若啟用了 Anti-Alias 字型的話將大大影響 MLTerm 的顯示速度,所以並不建議使用。

X11 Core Font

安裝 X11 Core Font 管理程式

在 Debian GNU/Linux 與其衍生發行版裡,要安裝 X11 Core Font 管理程式只要一行指令就夠:

aptitude install x-ttcidfont-conf libft-perl libttf2 defoma

其中的 defoma 套件全名為 Debian Font Manager,Debian GNU/Linux 或其衍生版的使用者可以利用它來方便地管理 X11 Core Font。而在安裝 X Window 的過程中,應該已經安裝了以上套件才是。

安裝官方所提供的 X11 Core Font

以下所列出的是一些由官方所提供的、建議中文桌面使用者安裝的 X11 Core Font:

  • xfonts-75dpi:有些應用程式可能會用到。預設上應該會安裝。
  • xfonts-intl-chinese:包含了 GB2312、GB8565-88、BIG5 (ETen)、SiSheng 等字型。XCIN 的使用者可能會用到。
  • unifont:一個常見的 UTF-8 字型。如果您是以中文語系來安裝 Debian Etch 的話,預設上應該會安裝。
  • xfonts-wqy:一個常見的 UTF-8 字型。

即而這些字型也是一行指令搞定:著名的文泉驛字型。

aptitude install xfonts-75dpi xfonts-intl-chinese unifont xfonts-wqy

另外,也能讓 defoma 支援 TTF 字型。但因為這種方法不管在效能及美觀上都有著重大缺陷,在此就略過不提了。

檢查可用的 X11 Core Font

在安裝完 X11 Core Font 後,您可以利用 xlsfonts 指令來得知系統上已安裝了哪些字型。例如以下指令可以找出在系統裡安裝了哪些 iso10646 (UTF-8) 字型:

xlsfonts | grep iso10646

沒有意外的話,您應該可以看到 unifont 及 wenquanyi 出現在列表裡。

自行安裝 X11 Core Font

您可以自行手動安裝 X11 Core Font,這裡以螢火飛 (Firefly) 前輩所提供、以 GPL 授權的 螢火飛新宋體 [[1]]為例: 首先,先建立一個放點陣字的子目錄:

  • 同樣的,如果您想安裝到全系統可以使用的地方,請將 ~/.fonts 改成 /usr/local/share/fonts,並加上 sudo。
mkdir -p ~/.fonts/bitmap

將您所下載到的字型搬到這個目錄裡:(以大小為 16 之點陣字為例)

mv fireflyR16.pcf.gz ~/.fonts/bitmap

然後,在該目錄下產生必須的字型資訊:

cd ~/.fonts/bitmap
mkfontdir

接下來,在您的 ~/.xinitrc 裡新增如下一行:

#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
xset fp+ ~/.fonts/bitmap
# invoke global X session script
. /etc/X11/Xsession

然後重新啟動 X Window,就能用 xlsfonts 看到大小為 16 的螢火飛新宋體了:

-firefly-firefly new sung-medium-r-normal--0-0-75-75-p-0-iso10646-1
-firefly-firefly new sung-medium-r-normal--16-150-75-75-p-159-iso10646-1

X11 Core Font編輯程式

另外,您也可以利用像是 gbdfed 之類的 X11 Core Font 編輯程式來由 TTF 字型裡匯出點陣字、或是自行繪製 X11 Core Font。

設定應用程式使用 X11 Core Font

修正 Xorg 的錯誤編碼

由於一些(愚不可及)的因素,在 Xorg 裡的 zh_TW.UTF-8 編碼是壞的,所以一些使用 X11 Core Font的應用程式,像是 XMMS 或是 ePSXe 在 UTF-8 環境下所顯示的全是亂碼。 解決方案:請下載正確的 XLC_LOCALE 檔案並蓋過 /usr/share/X11/locale/zh_TW.UTF-8/XLC_LOCALE 即可。

Gtk+ 1.x 應用程式(例如 ePSXe)

您可以修改 ~/.gtkrc.utf-8 來設定在 UTF-8 環境下的 Gtk+ 1.x 應用程式所使用的字型。例:

style "default-text" {
fontset = "-firefly-firefly new sung-medium-r-normal--16-150-75-75-p-159-iso10646-1"
}

class "GtkWidget" style "default-text"

以及修改 ~/.gtkrc.zh_TW 來設定在 zh_TW.Big5 環境下的 Gtk+ 1.x 應用程式所使用的字型。例:

style "gtk-default-zh-tw" {
fontset = "-sony-*-16-*-iso8859-1,
-eten-*-medium-r-*-16-*-c-*-big5-0"
}
class "GtkWidget" style "gtk-default-zh-tw"

MLTerm

MLTerm 是現今 GNU/Linux 裡少數能完全支援 UTF-8 的 X Window Emulator。您可以在 ~/.mlterm/font 裡設定 MLTerm 在未啟用 Anti-Alias 字型時所使用的字型名稱:

ISO8859_1 = -sony-*-16-*-iso8859-1;
ISO10646_UCS4_1 = -sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1;
ISO10646_UCS4_1_BIWIDTH = -freetype-ar pl new sung-reguler-r-normal--16-160-72-72-p-149-iso10646-1;