Last Update: 2003年 1月20日 周一 10時25分06秒 CST
X11 Core Font 以 XLFD 的格式來讓選擇字型,以下稍微介紹一下:
-kc-fixed-medium-r-normal-*-16-160-72-72-(11)c-(12)160-(13)big5-0
但是 X11 Core Font 在反鋸齒上的支援不佳、 使用 CJK TrueType 的效率不好, 特別是目前常用的 Unicode 字型在效率和記憶體的使用都會是很大的問題, 因此需要較現代化的系統 fontconfig/xft。
X11 Core Font 透過 xtt 字型模組來顯示字型。 xtt 字型模組對於 CJK TrueType 字型加強過的字型顯示模組。 xtt 字型模組目前由 After X-TT Project 維護中。 要使用 xtt Module 必須修改 XF86Config, 幫他加上新的 FontPath,因為 ports collection 會將中文 TrueType 字型安裝到 /usr/X11R6/lib/X11/fonts/TrueType/, 而且把中文PCF 安裝到 /usr/X11R6/lib/X11/fonts/local/:
Section "Files" : : FontPath "/usr/X11R6/lib/X11/fonts/TrueType/" FontPath "/usr/X11R6/lib/X11/fonts/local/" EndSection
以及讓 X 去使用 xtt 模組, 如果在模組區發現已經有設定 Load "freetype", 請將該行刪除,因為這兩個模組是互斥的:
Section "Module" : : Load "xtt" EndSection
Note: X11R6.8.1 之後,XTT 字型模組和 FreeType1 已經取消了, 因為 FreeType2 整合了他們的功能。
最後再透過 ttfm 來安裝新字體就可以了。
是不是一定要 xtt 模組才能使用中文 TrueType?答案不是。 freetype 模組也可以用來處理中文,但是兩者只能選一個, 而 xtt 是專為 CJKV 字型而設計產生的 TrueType 處理模組, 其中 TTCap 選項所提供的粗體、斜體、粗斜體, 以及其他功能是中文 TrueType 所不能或缺的。
對 TTCap 而言,他的語法是擴充 fonts.dir 來提供更多的選項,例如:
ds=y:ai=0.3:bsmi00lp.ttf -Arphic-AR PL Mingti2L Big5-bold-i-normal--0-0-0-0-c-0-iso10646-1
最前面的 ds=y:ai=0.3: 就是 X-TT 擴充的部份。 在這個例子中,文鼎明體的名稱是 bsmi00lp.ttf, ds=y(Double Strike) 使用粗體, ai=0.3(Automatic Italic) 使用斜體, 所以相對應的產生 -bold-i- 的文鼎明體粗斜體字型。 另外,最後面的 iso10646-1 就是 Unicode 字型, 目前文鼎字型在這個部分的支持並不是很好。
常用的還有 fn=INTEGER 來指定 TrueType Collection(.ttc) 檔案的 face 號碼, 像是目前處理 mingliu 就是跳過固定寬的細明體, 而改採用直接指定變動寬的新細明體 fn=1。
Note: 如果使用 freetype 模組,載入字型和顯示的的速度會比較快, 可以透過 x11-fonts/ttmkfdir 來產生的 fonts.scale 和用 mkfontdir -e 來產生 encodings.dir 與 fonts.dir。
# cd /usr/X11R6/lib/X11/fonts/TrueType # ttmkfdir -o fonts.scale # mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings但是這對細明體會造成莫大的災難,在字距的部份為 -m- (等寬字), 這會造成英文的字體和中文同為方塊字寬度,因為這會產生如下的 fonts.dir:
5 mingliu.ttc -DynaLab-MingLiU-medium-r-normal--0-0-0-0-m-0-ascii-0 mingliu.ttc -DynaLab-MingLiU-medium-r-normal--0-0-0-0-m-0-fcd8859-15 mingliu.ttc -DynaLab-MingLiU-medium-r-normal--0-0-0-0-m-0-iso10646-1 mingliu.ttc -DynaLab-MingLiU-medium-r-normal--0-0-0-0-m-0-iso8859-1 mingliu.ttc -DynaLab-MingLiU-medium-r-normal--0-0-0-0-m-0-iso8859-15