linux下英文字体变宽的解决方法(zt--firefly)

发表于:2007-06-08来源:作者:点击数: 标签:
首先,我先解釋為什麼會有英文間距過大的問題: TrueType 字體分成兩種,一種是可變字距,也就是每個字符寬度不一樣,比如 x 與 i,這兩個字符就不等寬,它是在每個字符中紀錄該字符的寬度,大多數的 TrueType 都是這種格式。 另一種就是固定字距。也就是每
首先,我先解釋為什麼會有英文間距過大的問題:


TrueType 字體分成兩種,一種是可變字距,也就是每個字符寬度不一樣,比如 "x" 與 "i",這兩個字符就不等寬,它是在每個字符中紀錄該字符的寬度,大多數的 TrueType 都是這種格式。

另一種就是固定字距。也就是每個字符寬度都一樣,這樣顯示或打印時,會有對齊效果,比較美觀,在英語環境中,不會有任何問題,聰明的您,知道問題所在了吧 Smile

沒錯!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>

以上那段的意思是:當遇到 CJK 字型,又是等寬時,忽略系統內定寬度,這樣,當系統使用 CJK 等寬字時,便不會再有間距過大的問題。

原文链接: http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=24271

 

原文转自:http://www.ltesting.net

...