星期日, 12月 06, 2009

Monaco font (pixelsize <= 14) & hinting

一直覺得很奇怪,我的Debian 上面的monospace 字體跟 Ubuntu 上面的一樣都用 Monaco 但是當看到 terminal 中 bold (高亮)的字體時,Debian 上有些英文字就會縮水:




但是 Ubuntu 上的不會,今天研究了一下發現原來不是字體的問題,是font hinting 的問題,把小字的hinting 關掉的話就不會這樣了(Ubuntu 上預設就有把字體較小的自行的font hinting, antialias 關掉)。怎麼關呢?還蠻簡單的,如果你有root 權限可以直接在 /etc/fonts/conf.avail 加入新的 font config file,如果沒有,也可以編輯 ~/.fonts.conf (不存在就自創)。
目標是要把字型size 較小時,font hinting 的功能關掉,只要在...裡面加入下面這個設定就可以了:
<match target="pattern">
<test compare="less_eq" name="pixelsize" qual="any">
<int>14</int>
</test>
<edit mode="assign" name="hinting">
<bool>false</bool>
</edit>
</match>

應該還蠻容易懂的,就是找到 pixelsize <= 14 的設定,然後把hinting 設成false。換了以後效果應該馬上會看到(重新開一個terminal) 如果沒有的話重新登入應該也就可以了。附上一張關掉hinting 後正常的:



順便看一下在字體大一點的時候,hinting 有無的差別:
pixelsize=15, with hinting:




pixelsize=15, without hinting:



我想hinting 主要是要讓字看得清晰一點(尖銳化之類的),從上面這兩張就可以看出差蠻多的,但是我個人這樣看起來好像也沒有特別喜歡哪一種,看個人吧!總而言之,字體小的時候還是需要關掉hinting 才比較正常。

沒有留言: