LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 917|回复: 1

字體大小,有些是我推測的,大家參考一下

[复制链接]
发表于 2005-10-31 20:58:18 | 显示全部楼层 |阅读模式
可能您的運氣很好,沒遇到過這個問題

gtk-base的程式與qt-base程式的字大小不同

您會發現firefox的工具列字型比konqueror小

首先您先得知道一下

螢幕上的東西都是用點?硭愕

如果您的螢幕是調成1024*768(x軸1024點,y軸768點)

Show一?(未經縮放的)800*600的圖時

這?垐D的寬度就是螢幕寬度的800/1024=0.78125倍

大約?兹ノ災坏3/4

如果您將同一個螢幕調成800*600,這?垐D就會擠?M整個螢幕

注意:上面的大小都是用螢幕比例?硭愕

?際的尺寸(長寬各為幾公分)是要看您的螢幕有多大

以15吋螢幕為例:

15吋螢幕是對角線大約15吋,如果是4:3的螢幕

則寬度高度約為12吋和9吋

則在不同設定時,這?800*600的圖的?際大小(寬度)為

1024*768:(800/1024)*12=9.735吋=23.8125公分

800*600:(800/800)*12=12吋=30.48公分

但是如果您是12吋的螢幕,看見的大小就變成

1024*768:23.8125*(12/15)=19.05公分

800*600:30.48*(12/15)=24.384公分

可以看見:

1.相同螢幕尺寸,則畫面點數愈多,圖形就愈小

2.相同的畫面點數,則螢幕尺寸愈小,圖形就愈小

但是字往往都比圖小很多

例如邊長用10個點的字在上面的螢幕設定下分別為

0.29765 cm

0.381 cm

0.238125 cm

0.3048 cm

像第三個,就會變得太小

因此最好的設定法就是:

10號字不要用10點?肀硎荆且梦覀儭貉劬λ姷拇笮 ?矶

所以程式必須知道您的螢幕尺寸以便做適度的調整

不過只要1024*768的螢幕,管你是12吋或100吋,對程式?碚f(似乎)都一樣

因此我們可以騙程式我們的螢幕尺寸

以便得到我們想要『看到的』字型大小

或者我們該告訴程式:我的螢幕『每英吋有幾個點』(就是所謂的dpi:dots per inch)

在繼續看下去之前,我們先了解一下pt(point)和px(pixel)這兩種字體大小的單位

在Dictionary.com查到的結果

point

26. Printing. A unit of type size equal to 0.01384 inch, or approximately 1/72 of an inch.

pixel

The basic unit of the composition of an image on a television screen, computer monitor, or similar display.

pt:是印刷界的一種長度單位,大約是1/72英吋

px:就是螢幕上的一個點

值得注意的就是當螢幕解析度為72dpi時

1px就是1pt

KDE(qt)和GNOME(gtk)會如何調整字體大小的顯示呢?

注意:接下?淼恼f明是我根據?驗後猜的

KDE的10號字(size 10)就是10pt

但是他怎麼知道你的螢幕多大呢

KDE會根據xorg.conf的設定(SuSE 10的使用者可以在/etc/X11/下找到)
Section "Monitor"
DisplaySize 305 229
HorizSync 30-75
Identifier "Monitor[0]"
ModelName "MOZO M5++"
Option "DPMS"
VendorName "MZI"
VertRefresh 50-85
UseModes "Modes[0]"
EndSection

在這段中描述這個螢幕的尺寸是305mm*229mm(15吋)

若您設定為1024*768

因此每一個px差不多305/1024=0.298mm

所以要顯示10pt=10/72英吋=0.353公分時

就會使用0.353/0.0298=11.8大約12點(px)的字



GNOME中的10號字,則是利用10px?碚{整

因為72dpi時1pt=1px,若螢幕為96dpi我們只要將顯示的點數乘以96/72,則大小就能維持10pt

在gnome-control-center中我們可以看見設定解析度的地方(預設為96dpi)

在gnome control center中調整字型的解析度

如果像上圖的設定,則size 10的字

就是用10px*(96/72)=13.3大約13點(px)的字?盹@示

注意這個字在96dpi的螢幕顯示中就是10pt

那平平是10號字,應該gtk程式會較大才對啦?

問題就出在KDE和GNOME的溝通不良

KDE的控制台基本上是無法控制gtk-base的程式的

以我的情況而言,使用KDE作為桌面

?際螢幕解析度為1024/12=85.3dpi

10號字在qt-base的程式(如前面所計算)就是0.353公分

而在gtk-base的程式(如firefox,gimp)就只會用10px?盹@示

大小就是(10/1024)*12英吋=0.1172英吋=0.298公分

因此看起?砭拖裣旅娴膱D一樣了

gtk-base的程式與qt-base程式的字大小不同

有以下方法可以解決:

1. 如果您有安裝gnome control center

打算將解析度設為?際解析度
$cd ~/.kde/Autostart/ $ln -s /opt/gnome/lib/control-center-2.0/gnome-settings-daemon .

然後在gnome control center中設定您的螢幕?際解析度

(以我的例子要設定86dpi,因為85dpi還沒到某一個點數的字)

(註:firefly字型內嵌有12、13、14、15、16px的點陣字)

只有這樣當您啟動KDE時,gnome control也在背景執行

gtk的10號字就會調整成10*(86/72)=12點(px)=0.357公分

就和qt-base程式一樣了

(其?我在兩個控制中心都是設成11號字)

調整字型解析度後

2. 沒有安裝gnome control center

我們可以調整xorg.conf的DisplaySize

讓解析度變成96dpi,就像gnome的預設值一樣

但是不建議去編輯這個文件,若不小心動到不該動的會造成無法進入X

(當然我們改動設定之前應該先備份一下)

在SuSE中提供了方便的設定工具sax2(雖然我對他有點怨言)

您也可以由Yast2中?碜

在sax2中設定螢幕(字型的)解析度

以15吋螢幕1024*768而言,調成13.3吋,解析度就是96dpi

(其他尺寸請您自行計算吧)

下次再登入X您的字型就搞定了
发表于 2005-10-31 21:19:42 | 显示全部楼层
我向来都是直接修改/etc/X11/xdm/Xservers,第一个X server的参数加上-dpi 86完事
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表