X Window是所謂client-server結構,這裡的server管顯示(輸出)、鍵盤和
鼠標(輸入)部分,而client則是你正在用的程序,比如編輯器。Server收集
鍵盤和鼠標的輸入,送到編輯器這一client,編輯器經過處理後,回過來再讓
server去顯示一些字到屏幕上,來回折騰。
怎樣顯示一個字呢?
一個字實際上就是一個小圖,如果小圖上的點非黑即白,就稱為黑白點陣;
如果小圖上的點可以有不同的亮度甚至顏色,則稱為AA點陣。每個字,也就
是每個小圖都有固定的編號,編輯器(client)可以只告訴server某個編號,
server根據該編號去找出對應的小圖,這種方案就是所謂的server side
font,如FreeType,X-TrueType等backend就屬此類;如果編輯器自己去找小
圖,干脆把小圖送給server去顯示,這種方案就是所謂client side font,
Xft屬這一類。
server side font
FreeType backend: 即XF86Config中的freetype模塊
X-TrueType backend: 即XF86Config中的xtt模塊
client side font
Xft: 設置文件是fonts.conf
還有一類,xfs,跟server side font一樣,client把字編碼傳給server,但
server並不直接從字庫中讀出對應該編碼的小圖,而是把編碼再傳給另外
的所謂font server,由font server去字庫找出對應的圖,返回給X server
去顯示,姑且將這種方式稱為font server font:
font server font
xfs: 設置文件是X11/fs/config
不管是哪一類,最終都要去字庫文件讀出對應編碼的小圖,至少對TrueType
格式的字庫文件而言,xtt也好,freetype也好,Xft也好,幾乎都用到了
FreeType這一字庫engine,雖然xtt沒人繼續改進,還是用FreeType 1,別人
都改用FreeType 2了。正因為大家都用FreeType字庫engine,使得xtt,
freetype,Xft這些名字容易弄混,讓人頭大。解決的辦法很簡單:不要再去
管什麼xtt,不要再去管什麼freetype,不要再去管什麼xfs:
只要弄清Xft就夠了。
X字庫設置必讀: Juliusz Chroboczek的Fonts in XFree86
http://www.xfree86.org/~dawes/4.3.0/fonts.Html