打印

英文間距太大的解決方法

英文間距太大的解決方法

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

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

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

沒錯!CJK 的等寬字體,包含『半寬英數字符』與『全寬 CJK 字符』,字型引擎會把全寬字寬度套用在半寬字上頭,造成半寬字看起來間距太大,這就是問題所在。

這裡提供一個方法,讓字型引擎忽略 CJK 字體指定的寬度,您可以將以下這段內容,複製到 /etc/fonts/fonts.conf 或是 /etc/fonts/local.conf 中:
[code:1]
<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>
[/code:1]
以上那段的意思是:當遇到 CJK 字型,又是等寬時,忽略系統內定寬度,這樣,當系統使用 CJK 等寬字時,便不會再有間距過大的問題。

TOP

但是这样在运行OO,还有Kate的时候,英文间距还是大。
OO的菜单英文,Kate的命令行。英文字体间距都是比较大。
我是Linux公社里的一只小小小菜鸟。我喜欢Linux,但是我是小小小菜鸟。

TOP

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

TOP

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

TOP

[quote:333df4b8fd="lanjian98"]可变字距有什么好的?为什么会加进这个功能阿?[/quote]

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

TOP

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

TOP

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

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

TOP

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

TOP

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

TOP

[code:1]<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>[/code:1]

TOP

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

TOP

两种方法都不行         
回到从前 让我静静

TOP

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





mozilla里面的菜单上的字体怎么设置阿?
抽刀断水水不流,举杯消愁愁不愁。 落下与孤鹜齐飞,秋水共vivo一色!

TOP

果然解决了问题

TOP

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

mozilla里面的菜单上的字体怎么设置阿?[/quote]

[code:1]
<match target="font">
                <edit name="spacing">
                        <const>proportional</const>
                </edit>
                <edit name="globaladvance">
                <bool>false</bool>
                </edit>
        </match>
[/code:1]
工作繁忙中

TOP