| 加到我的最愛 :: 上一篇主題 :: 下一篇主題 |
| 發表人 |
內容 |
EdwardGJLee 工友

註冊時間: 2004-08-25 文章: 665 來自: 鄉下
|
|
| 回頂端 |
|
 |
訪客
|
|
| 回頂端 |
|
 |
EdwardGJLee 工友

註冊時間: 2004-08-25 文章: 665 來自: 鄉下
|
|
| 回頂端 |
|
 |
EdwardGJLee 工友

註冊時間: 2004-08-25 文章: 665 來自: 鄉下
|
|
| 回頂端 |
|
 |
Edward G.J. Lee 訪客
|
|
| 回頂端 |
|
 |
Edward G.J. Lee 訪客
|
發表於: 星期六 十月 08, 2005 1:52 pm 文章主題: Re: Slackware 10.2 中文環境的建立 |
|
|
四、字型微調
這裡的字型微調,主要的仍然是針對中文,但有些是整個系統的問題,尤其是中英文字型的配合。
目前的 X,他的函式庫大多支援字的平滑處理,讓解析度低的螢幕能顯示的更完美。但這對中文字的處理並不太能讓人滿意,雖然,滿意是很主觀的,但太過離譜的情形大家眼睛都看得出來,這就需要調整了。
這裡所談的都是新的機制,舊的機制漸漸的會藏在背後去,甚至完全不用,而且,舊的機制對字型顯示的控制有限,所以就不討論舊的顯示機制了。
1. 清晰度及大小
這裡所謂的清晰度,包括 smooth 及 hinting 兩種機制。如果是使用KDE/GNOME/XFCE 的環境,這應該沒什麼問題,由其中的控制台就可以很方便的去調整字的清晰度。
| 代碼: | KDE => kcontrol(這是程式名稱) => Appearance & Theme => Fonts
GNOME => gnome-control-center(這是程式名稱) => Fonts |
[Note] 請自行參考:
http://cle.linux.org.tw/forum/viewtopic.php?t=574
來安裝 GNOME 環境。
但是,這些設定只針對他的環境有效,例如 GNOME 的設定,在 KDE 環境時,啟動 GNOME 的軟體,這就無效了。但可以預先把 gnome-settings-daemon 常駐,這樣原先的設定也會有效。在 $HOME/.xinitrc 中加一行(請不要加在最後一行):
| 代碼: | | exec /usr/libexec/gnome-settings-daemon & |
就可以了。反之,如果使用的是 GNOME 環境,則可以加一行:
這樣不僅 KDE 環境的設定在啟動 KDE 的軟體時能保持下來,而且也可以增加在 GNOME 環境,啟動 KDE 軟體的速度,反之亦同。
接下來所探討的是沒有這些整合環境時,要如何調整?例如,使用 icewm/fvwm[2]/blakcbox……等等單純的 WM(Window Manager) 的情形下要如何調整呢?
首先,以上 kdeinit/gnome-settings-daemon 這兩個,當然就要加入 ~/.xinitrc 中,以利 KDE/GNOME 軟體的啟動及保留他們的設定。另外,不是 KDE/GNOME 的軟體,又有使用到 libXft 時,這就要另外設定。
使用 libXft 的軟體,例如 icewm(這裡只舉這個例子,其他的 WM 如果有支援 libXft 也是可以適用)。
| 代碼: | ! $HOME/.Xdefaults
Xft.dpi: 96
Xft.antialias: 0
Xft.hinting: 1
Xft.hintstyle: hintfull
! 可選擇的項目有:hintnone, hintslight, hintmedium, hintfull
! 1 是 true(有),0 是 false(沒有)。
! `!' 這個符號是 X 設定檔的註解符號。 |
其中,antialias 對於中文,雖然顯示出來會好看些,但整個頁面會有濛朧的感覺,所以,如果你的眼睛不適應這樣子的濛朧(例如像我一樣 ,那就把他關掉,這些字會清晰,但就會變得醜一點。請比較以下兩張圖:
當然,以 icewm 來說,他也可以在 $HOME/.icewm/preferences 裡頭設定字的大小,例如:
| 代碼: | TitleFontNameXft="sans-serif:size=12:bold"
MenuFontNameXft="sans-serif:size=12:bold" |
但只影響 icewm 所能控制的視窗,其他,如 mozilla/firefox 就控制不到了。另外,不使用 libXft 的程式也控制不到,例如 xedit。當然,目前一些舊的 X 程式很少人在使用了,但在一些環境裡頭可能沒有 KDE/GNOME 這類龐大的 桌面環境系統,了不起有個 icewm 就不得了了,所以,這裡也談一下他們的設定:
| 代碼: | ! $HOME/.Xdefaults
xedit*international: True
xedit*inputMethod: gcin
xedit*preeditType: OverTheSpot |
加入加入這三行就可以輸入中文。至於,其他的設定,請參考:
| 代碼: | | /etc/X11/app-defaults/Xedit |
這個檔來設定。這個檔是整個系統的預設值,請不要去更改他,想更改的話,把他加入 $HOME/.Xdefaults 就可以了。但 xedit 沒有利用到 libXft,所以,字的清晰、平滑的設定功能就就無法由 libXft 的設定來顯示了。請參考下圖:
2. fontconfig 的設定
其實有很多設定,可以經由 /etc/fonts/local.conf 或 $HOME/.fonts.conf 來設定,但這些設定就和以前舊的 X 設定沒兩樣,我們不一定看得懂,也不一定會設。這裡只舉一些常用到的例子。
(1) antialias, dpi 及 hinting 的設定
以上所談到 Xft 的設定也是可以設在 $HOME/.fonts.conf 中:
| 代碼: | <fontconfig>
<match target="font" >
<edit mode="assign" name="dpi" >
<double>96</double>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="hinting" >
<bool>true</bool>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="hintstyle" >
<const>hintmedium</const>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="antialias" >
<bool>false</bool>
</edit>
</match>
</fontconfig> |
(2) 英文字使用英文字型,中文字使用中文字型
為什麼要這樣設定呢?因為中文字型裡頭的英文字,實在是太醜了,請試著比較以下兩張圖就知道我在說什麼了:
以下的設定,英文字使用 Bitstream Vera 系列,配合 Firefly 新宋,也就是說,選用 Bitstream Vera 系列的英文字型就會自動配合 Firefly 新宋,而且,英文字使用英文字型,中文字使用中文字型:
| 代碼: | <?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="family" compare="eq">
<string>serif</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Bitstream Vera Serif</string>
<string>AR PL New Sung</string>
</edit>
</match>
<match target="pattern">
<test name="family" compare="eq">
<string>sans-serif</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Bitstream Vera Sans</string>
<string>AR PL New Sung</string>
</edit>
</match>
<match target="pattern">
<test name="family" compare="eq">
<string>mono</string>
</test>
<edit name="family" mode="assign" binding="strong">
<string>Bitstream Vera Sans Mono</string>
<string>AR PL New Sung</string>
</edit>
</match>
</fontconfig> |
理想的話,請安裝 core_web_fonts,這是 MS 公開給大家合法使用的字型,可以在
http://www.linuxpackages.net/
搜尋、下載安裝。請另外安裝 cabextract 這個工具,以便解開 MS cab 檔。這些字型的品質相當不錯。
(3) 特定大小的字使用內嵌的點陣字,而且不 antialias
使用內嵌點陣字場合,就沒有必要使用 AA,否則會使字體顯示模糊:
| 代碼: | <?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font" >
<test name="family" >
<string>AR PL New Sung</string>
</test>
<test compare="less_eq" name="pixelsize" >
<double>18</double>
</test>
<edit name="hinting" >
<bool>false</bool>
</edit>
<edit name="antialias" >
<bool>false</bool>
</edit>
<edit mode="assign" name="embeddedbitmap" >
<bool>true</bool>
</edit>
</match>
</fontconfig> |
詳細的 fontconfig 語法,請參考他的文件說明。這裡要注意的是,這不是先設先贏,而是後設的最大,所以請注意設定順序,後面的設定會蓋過前面的設定。例如,特定大小的字使用內嵌的點陣字,而且不 antialias 的設定擺在前頭,而 antialias, dpi 及 hinting 的設定擺在後頭,如果沒 特別指定適用的範圍,那麼,前面點陣字的設定將會被後面的 AA 設定蓋過去而沒有作用。
By Edward G.J. Lee |
|
| 回頂端 |
|
 |
EdwardGJLee 工友

註冊時間: 2004-08-25 文章: 665 來自: 鄉下
|
發表於: 星期六 十月 08, 2005 2:03 pm 文章主題: Re: Slackware 10.2 中文環境的建立 |
|
|
Sigh,總是忘了登入。@_@
由於 phpbb 的寫作格子比較小,所以在打字及編排上很可能會有錯誤,請大家幫忙指正錯誤,謝謝。 _________________ L.G.J. |
|
| 回頂端 |
|
 |
EdwardGJLee 工友

註冊時間: 2004-08-25 文章: 665 來自: 鄉下
|
|
| 回頂端 |
|
 |
訪客
|
發表於: 星期四 十一月 17, 2005 11:13 am 文章主題: |
|
|
前輩:
照著上面 xedit 設定後
zh_TW.UTF-8 可以正常用 gcin
而 zh_TW.Big5 時 "Ctrl+空白鍵" 無法叫出 gcin
而是得到 @ 符號 |
|
| 回頂端 |
|
 |
EdwardGJLee 工友

註冊時間: 2004-08-25 文章: 665 來自: 鄉下
|
發表於: 星期四 十一月 17, 2005 10:45 pm 文章主題: |
|
|
| Anonymous 寫到: | 前輩:
照著上面 xedit 設定後
zh_TW.UTF-8 可以正常用 gcin
而 zh_TW.Big5 時 "Ctrl+空白鍵" 無法叫出 gcin
而是得到 @ 符號 |
請問 gcin 是在什麼 locale 下啟動的?
或者,直接設在 /etc/X11/app-defaults/Xedit 裡頭試試看。 _________________ L.G.J. |
|
| 回頂端 |
|
 |
訪客
|
發表於: 星期五 十一月 18, 2005 12:47 am 文章主題: |
|
|
直接設在 /etc/X11/app-defaults/Xedit 裡頭情形一樣
我的 /etc/profile.d/lang.sh 設定 locale 為 zh_TW.UTF-8
而 mrxvt 是用 bash -c "LANG=zh_TW.Big5 mrxvt" 命令啟動
在 mrxvt 裡頭執行 xedit 會無法啟動 gcin (即 big5 環境下) |
|
| 回頂端 |
|
 |
訪客
|
發表於: 星期五 十一月 18, 2005 1:58 am 文章主題: |
|
|
又來一個問題:
安裝 dvipdfmx 時, 發生一個 error:
==>
This will take time. Please wating...
/usr/share/texmf/bin/updmap: line 1067: syntax error near unexpected token 'newline'
/usr/share/texmf/bin/updmap: line 1067: 'dvips2dvipdfn('
就回到 bash
打開 updmap 一看, 原來 dvips2dvipdfn( 少個右括弧
補上後 ok |
|
| 回頂端 |
|
 |
訪客
|
發表於: 星期五 十一月 18, 2005 2:36 am 文章主題: |
|
|
| 引言回覆: | | 目前 cwt1 五套的 Unicode 中文 Type 1 字型也已經製作完成,有時間會打包供下載,這樣五種基本排版的中文字型就可以好好利用了。 |
請問前輩可以下載了嗎?不好意思, 隨口問問 |
|
| 回頂端 |
|
 |
EdwardGJLee 工友

註冊時間: 2004-08-25 文章: 665 來自: 鄉下
|
發表於: 星期五 十一月 18, 2005 8:08 pm 文章主題: |
|
|
| Anonymous 寫到: | 直接設在 /etc/X11/app-defaults/Xedit 裡頭情形一樣
我的 /etc/profile.d/lang.sh 設定 locale 為 zh_TW.UTF-8
而 mrxvt 是用 bash -c "LANG=zh_TW.Big5 mrxvt" 命令啟動
在 mrxvt 裡頭執行 xedit 會無法啟動 gcin (即 big5 環境下) |
抱歉,我也不清楚問題出在什麼地方,我這邊是可以正常執行。請在 mrxvt 裡頭執行 locale 看看是什麼結果。還是說,你的 mrxvt 有其他的設定上的問題,換 xterm 來開啟 xedit 是不是還會如此? _________________ L.G.J. |
|
| 回頂端 |
|
 |
EdwardGJLee 工友

註冊時間: 2004-08-25 文章: 665 來自: 鄉下
|
|
| 回頂端 |
|
 |
|