firefly 发表于 2003-5-22 09:24:15

英文間距太大的解決方法

首先,我先解釋為什麼會有英文間距過大的問題:

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>

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

ftyh 发表于 2003-6-4 17:17:02

但是这样在运行OO,还有Kate的时候,英文间距还是大。
OO的菜单英文,Kate的命令行。英文字体间距都是比较大。

rexforce 发表于 2003-6-4 22:20:10

OO用的是自己的fontconfig...
Kate裡的命令行是調用Konsole,按右鍵修改字型為"自訂",在更改為非Fixed的字型即可...

lanjian98 发表于 2003-6-5 12:45:10

可变字距有什么好的?为什么会加进这个功能阿?

limux 发表于 2003-8-10 07:19:15

可变字距有什么好的?为什么会加进这个功能阿?

嘿嘿,原因是大部分人认为可变的字距使文本更好看。为什么是这样土人我颗不动,这个你可能需要去问一问学美术或者学心里美学的人。 :roll:

hahaghost 发表于 2003-8-12 03:00:44

谢谢,谢谢,太谢谢了,找了几天了,终于在这里找到了,终端里的英语子母那么大,看着郁闷死了,嘿嘿,按照楼主斑竹的 方法成功解决!!!!!!!!!!!
愿公社更快的 发展,让我们这些小鸟成长的更快!@!!

Apollo 发表于 2003-8-21 03:56:31

奇怪,我的改了之后并没有出现任何变化,相反到是改变fonts.scale中的"c"为"p"可以解决部分问题.

其实现在也就剩下一个rxvt终端的字体没有解决,主要就是英文字体间距太大,只有在xtt下才会正常,freetype下一直搞不定,都有点灰心想回头用xtt了.

8425438 发表于 2003-9-6 09:41:29

可是我用了楼主的方法之后,字体变得模糊不清了,只得又忍痛删掉
这是为什么呢?

Aroutine 发表于 2003-10-30 22:25:06

怎么我用了之后没有一点的改变,还是和原来的一样,看看我这里的字体还是这样的宽!
g m p l a y e r这个是在终端里头的字的间距!

Kingo 发表于 2003-10-30 23:21:47

<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>
                <edit name="spacing">
                        <const>proportional</const>
                </edit>
                <edit name="globaladvance">
                <bool>false</bool>
                </edit>
      </match>

sleepdragon 发表于 2003-12-18 20:37:36

我用楼主的代码没有解决问题
Kingo的代码能解决问题

BestMarine 发表于 2004-1-26 17:44:02

两种方法都不行 :cry::cry::cry::cry::cry:

vivo 发表于 2004-1-29 14:38:58

我试过了,可以!谢谢先!
不过还有一个问题就是大部分已经解决了,可是还有一部分字体是很宽的,
具体是在mozilla1.6的界面上有问题!





mozilla里面的菜单上的字体怎么设置阿?

hq2000pro 发表于 2004-2-16 14:14:46

果然解决了问题

翔羽 发表于 2004-2-17 00:58:31

我试过了,可以!谢谢先!
不过还有一个问题就是大部分已经解决了,可是还有一部分字体是很宽的,
具体是在mozilla1.6的界面上有问题!

mozilla里面的菜单上的字体怎么设置阿?


<match target="font">
                <edit name="spacing">
                        <const>proportional</const>
                </edit>
                <edit name="globaladvance">
                <bool>false</bool>
                </edit>
      </match>
页: [1] 2 3
查看完整版本: 英文間距太大的解決方法