TrueType 字體分成兩種,一種是可變字距,也就是每個字符寬度不一樣,比如 "x" 與 "i",這兩個字符就不等寬,它是在每個字符中紀錄該字符的寬度,大多數的 TrueType 都是這種格式。
另一種就是固定字距。也就是每個字符寬度都一樣,這樣顯示或打印時,會有對齊效果,比較美觀,在英語環境中,不會有任何問題,聰明的您,知道問題所在了吧
沒錯!CJK 的等寬字體,包含『半寬英數字符』與『全寬 CJK 字符』,字型引擎會把全寬字寬度套用在半寬字上頭,造成半寬字看起來間距太大,這就是問題所在。
這裡提供一個方法,讓字型引擎忽略 CJK 字體指定的寬度,您可以將以下這段內容,複製到 /etc/fonts/fonts.conf 或是 /etc/fonts/local.conf 中:
代码: |
<match target="font"> <test target="pattern" name="lang" compare="contains"> <string>zh-tw</string> <string>zh-cn</string> <string>ja</string> <string>ko</string> </test> <test name="spacing" compare="eq"> <const>mono</const> </test> <edit name="globaladvance" mode="assign"> <bool>false</bool> </edit> </match> |