目前有許多程式都會要求使用 TTF 字型,所以最好還是幫 X 加 上中文的 TTF 字型支援。目前安裝字型所需的 fonts.dir 已經不需要 使用暴力的方法產生,使用 ttfm 就可以很順利的管理所有的中文字 型了。而現在在 ports collection 中的 TrueType 字型有數套, arphicttf、 moettf、 wangttf。
安裝 chinese/ttfm。
安裝後包含了:
ttfinfo:一個可以用來讀取 ttf 字型格式資訊的小程式,範例如下:
# ttfinfo /usr/local/share/fonts/TrueType/bkai00mp.ttf TTFINFO_FONT_FILE="/usr/local/share/fonts/TrueType/bkai00mp.ttf" TTFINFO_FONT_NAME="AR PL KaitiM Big5" TTFINFO_FONT_PSNAME="ZenKai-Medium" TTFINFO_FOUNDRY_NAME="Arphic" TTFINFO_WEIGHT_NAME="medium" TTFINFO_WIDTH="normal" TTFINFO_NUMCMAP="2" TTFINFO_CMAP0="1,0" TTFINFO_CMAPNAME0="Apple,Roman" TTFINFO_CMAP1="3,1" TTFINFO_CMAPNAME1="Windows,Unicode" TTFINFO_MAPNUM="1" TTFINFO_FONTMAP1="-Arphic-AR PL KaitiM Big5-medium-r-normal--0-0-0-0-c-0-big5-0"
ttfinst.tk:圖形介面的 tk script, 可以用來安裝字型,不建議使用。
ttfm.sh:shell script,預備作為 ttf 字型總管。
# ttfm.sh --help True-Type Font Manager 0.9.3 Usage: /usr/local/bin/ttfm.sh [option] --add [module] <file>... install ttf font --remove [module] <file>... remove ttf font from the system --list <module>... list all ttf fonts on the system --modules list all ttf manager modules on the system --initm <module>.. initialize modules --help show this info
這個程式會去利用位於 /usr/share/fonts/install/ 底下以 ".ttfm" 結尾的可執行檔來安裝、設定字型, 這些 .ttfm 檔案稱 為 ttfm module,由需要使用到 ttf 字型的程式提供,這些模組必 須符合以下要求:
可獨立使用,不一定透過 ttfm.sh 呼叫執行。
不對系統字型目錄有任何預設,只管理自己模組字型目錄下的檔案。
對 ttf 檔案位置需求不同於 ttfm.sh 中的系統字型目錄時,以 link 方式處理,不 copy ttf 檔案,移除字型時不更動系統字型目 錄中的檔案。
提供至少下面幾個參數供 ttfm.sh 使用:
--name 顯示模組名稱 --list 列出模組管理的現有字型與對應的名稱 --add <file> 增加字型,file 為一字型檔案名稱,如 /mnt/windows/fonts/mingliu.ttc --remove <file> 移除字型,file 為字型檔案名稱,可以是 fullpath、亦可以是單純檔案名,如 /usr/local/share/fonts/TrueType/bkai00mp.ttf or bkai00mp.ttf
ttfm 採用模組化的設計。 每一個需要使用到 ttf 字型的 程式都可以提供 ttfm 的模組, 然後便可透過 ttfm.sh 來做到 字型的安裝,移除,列表,設定預設字型等管理的動作。 目前已有的 ttfm 模組有:
gscjk 給 Aladdin Ghostscript 使用。可以管理 TrueType 字型 和 CID 字型,Ghostscript 必須修補可以使用 TrueType 字型。 xfreetype 給 XFree86's freetype backend,在 3.x 是 Xfsft, 在 4.x 是 freetype 模組。 xttfm 安裝給 X window 用的 font.dir, font.alias
一些使用範例:
1. 加入字型:
# ttfm.sh --add <path>/bsmi00lp.ttf
(xttfm 會令 xfs 重新載入字型名稱。如果您不是使用 xfs, 您要自己下 xset fp rehash 令新的字型名稱生效,或者重新啟動 X Window )
2. 列出字型:
# ttfm.sh --list xttfm
會列出 xttfm 模組所有安裝的字型。 您現在可以用 xlsfonts 看到這些字型名稱。 並可用 xfd -fn <字型名稱> 試試能否看到字型。
3. 移除字型:
# ttfm.sh --remove bsmi00lp.ttf
這不需多做解釋吧?
4. 設定預設字型:
# ttfm.sh --setdefault xttfm bkai00mp.ttf
將 xttfm 模組的預設字型更改為 bkai00mp.ttf 這或許是 ttfm 最 powerful 的功能之一了。 您可發現 X Window 預設的中文字型通通變成楷體的。
注意預設字型是跟 encoding 有關的。您可以對不同的 encoding 分別給定預設字型。ttfm 會自動根據所給定 ttf 自動判斷應設定那種 encoding 的預設字型。 例如 ttfm.sh --setdefault xttfm gkai00mp.ttf 會設定 GB 的預設字型為楷體。
5. 模組的初始化:
# ttfm.sh --initm <module name>...
這個功能是用來在安裝一模組時,將系統已有的 ttf 字型通通安裝到該模組中。 如果下:
# ttfm.sh --initm all
會令所有已安裝的模組都做初始化的動作。 (也就是將所有字型安裝到所有的模組中)
如果您撰寫了一個 ttfm 的模組,請記得在安裝時 執行 ttfm.sh --initm <您的模組名稱>
Note: 關於 TrueType 字型的設定,在啟動您的 X 之前, 記得檢查 /etc/XFree86 下面有沒有 FontPath "/usr/X11R6/lib/X11/fonts/TrueType" 或是在 ~/.xinitrc 中加上 xset +fp /usr/X11R6/lib/X11/fonts/TrueType/ 。
# cvs -d :pserver:anonymous@cle.linux.org.tw:/var/lib/CVSROOT login (Logging in to anonymous@cle.linux.org.tw) CVS password: # cvs -d :pserver:anonymous@cle.linux.org.tw:/var/lib/CVSROOT checkout ttfm
WWW: ttfm project