華文細黑
由於Linux下沒有甚麽好的中文字體,我一直都是用OS X下的華文細黑體,STHeiti。要fontconfig用STHeiti並不難,只要把~/.fonts.conf改成這樣就可以了:
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>Bitstream Vera Serif</family>
<family>STHeiti</family>
</prefer>
</alias>
</fontconfig>
sans-serif和monospace都差不多,就不在這裏重複了。
最近發現有些網頁用了其他字體,一直也找不到原因。前兩天發現在中文Wikipedia時選擇簡體的話沒有問題,選擇香港或者是台灣的話都會使用另外的字體,選不轉換也沒有問題。靈機一觸:
$ fc-match :lang=zh-cn
华文细黑.ttf: "STHeiti" "Light"
$ fc-match :lang=zh
华文细黑.ttf: "STHeiti" "Light"
$ fc-match :lang=zh-tw
ShanHeiSun-Light.ttf: "AR PL Mingti2L Big5" "Reguler"
$ fc-match :lang=zh-hk
DFSongSd.ttf: "DFSongStd" "Regular"
細看之下:
$ fc-match STHeiTi -v | grep lang | tail -n 1
lang: aa|af|ar|ast|ava|ay|az-ir|be|bg|bi|bo|br|bs|ca|ce|ch|co|cs|cy|da|de|dz|el|en|eo|es|et|eu|fa|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|ik|io|is|it|ki|kl|ku-ir|kum|la|lb|lez|lt|lv|mg|mh|mn|mt|nb|nds|nl|nn|no|ny|oc|om|os|pl|ps-af|ps-pk|pt|rm|ru|se|sel|sh|sk|sl|sma|smj|smn|so|sq|sr|sv|sw|tn|tr|ts|ug|uk|ur|vo|vot|wa|wen|wo|xh|yap|zh-cn|zh-sg|zu(s)
雖然華文細黑能夠顯示繁體中文,它自己卻說不可以。花了不少時間改~/.fonts.conf,第一個成功的方法是:
<match>
<test name="lang" compare="eq"><string>zh-tw</string></test>
<edit name="lang"><string>zh</string></edit>
</match>
但感覺上這不太好,所以最後用了:
<match>
<test name="lang" compare="eq"><string>zh-tw</string></test>
<edit name="family" mode="append" binding="strong">
<string>STHeiti</string>
</edit>
</match>
<match>
<test name="lang" compare="eq"><string>zh-hk</string></test>
<edit name="family" mode="append" binding="strong">
<string>STHeiti</string>
</edit>
</match>
不知道為甚麽,直接match STHeiTi再append zh-tw和zh-hk去lang不成功。用fc-match -v見到改了,但依然用不了。
by khc
on Tue Mar 4 23:33:19 2008
Permlink