為Redhat linux命令行安裝添加新字體
以下過(guò)程在 Redhat 9.0 上linux命令行安裝添加新字體,測(cè)試通過(guò).
準(zhǔn)備要linux命令行安裝添加新字體, 如: simsun.ttc, tahoma.ttf... 根據(jù)發(fā)行注記里所言分別為核心 X 字體子系統(tǒng)和 fontconfig 字體子系統(tǒng)添加字體:
為核心 X 字體子系統(tǒng)添加字體
[注]
以下部分應(yīng)該對(duì) Redhat 9.0 之前的版本也適用, 因?yàn)?核心 X 字體子系統(tǒng)存在 于迄今為止的版本中.
"如果你想給你的 Red Hat Linux 9 系統(tǒng)添加新字體,根據(jù)使用新字體的字體子系統(tǒng)而定 ,你必須明確所需步驟。對(duì)于核心 X 字體子系統(tǒng),你必須:
1. 創(chuàng)建 /usr/share/fonts/local/ 目錄(如果它不存在):
mkdir /usr/share/fonts/local/"
- 這一步?jīng)]問(wèn)題.
"如果你必須要?jiǎng)?chuàng)建 /usr/share/fonts/local/,你就必須把它添加到 X 字體服務(wù)器的 路 徑中:
chkfontpath --add /usr/share/fonts/local/"
- 如果是剛創(chuàng)建的linux命令行新字體 /usr/share/fonts/local/, 那么執(zhí)行這一行命令會(huì)提示錯(cuò)誤 因?yàn)橄到y(tǒng)在這個(gè)目錄里找不到 fonts.dir 文件, 然后就不 add.. 不過(guò)沒(méi)關(guān)系, 這一步跳過(guò)去, 在第三步之后做.
"2. 把linux命令行新字體文件復(fù)制到 /usr/share/fonts/local/ 中"
- 照做.
"3. 使用以下命令來(lái)更新linux命令行字體信息:
ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale"
- 照做. 然后:
1) 把 fonts.scale 拷貝出來(lái)一份 fonts.dir.
2) chkfontpath --add /usr/share/fonts/local/
"4. 使用以下命令來(lái)重新啟動(dòng) xfs 字體服務(wù)器:
service xfs reload"
- 這一步我沒(méi)成功, 因?yàn)槲野l(fā)現(xiàn) redhat 9 里面沒(méi)有 service 這個(gè)命令. 于是 用笨辦法解決: 退出 X, 再 startx.
以上這些步驟做完之后, 所有 gtk 1.2 的程序里有關(guān)字體的部分 (如 xmms 的字體設(shè)置 里) 都多出來(lái)我們要的新字體, 像 simsun, tahoma. 這時(shí)可以在程序內(nèi)部直接使用了. 比如我們讓歌曲列表里的中文使用 simsum, 英文使用 tahoma, 可以這樣做:
1) 先在 xmms 的 Fonts 里勾上選項(xiàng) "Use fontsets" - 讓 xmms 支持雙字節(jié)的 中文字體;
2) 在 播放清單 部分瀏覽字體, 選擇使用 simsum: -misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r (不用拷這個(gè), 選上 simsun 它自己就出來(lái)了)
對(duì)于linux命令行英文字體的要用 tahoma 就這么來(lái), 一點(diǎn)小技巧:
把這段 "-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r" ^x 剪切下來(lái), 再選字體為 tahoma, 出現(xiàn)這個(gè):
-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1
好了, 在后面加個(gè)逗號(hào), 把剛才剪切的那段東東 ^v 粘貼在后面成為:
-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,
-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r
這么一行, 保存一下, 于是歌曲列表就會(huì)對(duì)中文使用 simsum, 英文使用 tahoma. 再把這行拷下面 Main Window 的字體里 (要勾上 "Use X font"), 這時(shí) xmms 主窗 口里的字體 (像那條來(lái)回滾動(dòng)的歌曲信息的字體) 也和歌曲列表里的一樣了.
注意, 我剛才說(shuō)的是程序內(nèi)部, 就象 xmms 的歌曲列表一樣, 而 程序本身, 即 xmms 自 己的窗口卻還是又粗又大的字體, 這時(shí)需要改 gtk 的字體設(shè)置:
1) 用 root 賬號(hào): vi /etc/gtkrc.zh_CN
2) 把原來(lái)的:
fontset = "-adobe-helvetica-medium-r-normal--16-*-*-*-*-*-iso8859-1,
-*-*-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0,*-r-*"
改成和我們上面用在 xmms 里的字體一樣:
fontset =
"-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,
-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r"
3) 保存退出, 關(guān)掉 xmms 這些程序, 再重新打開(kāi), 效果就出來(lái)了! Enjoy!
為 fontconfig 字體子系統(tǒng)添加linux命令行字體
[注]
以下除了 "圖形化地安裝linux命令行字體" 部分為 Rehat 9.0 獨(dú)有, 其他應(yīng)該在之前版本也適用, 大家試試.
#p#這部分簡(jiǎn)單多了, 看 redhat 9 發(fā)行注記:
"把linux命令行新字體添加到 fontconfig 字體子系統(tǒng)比較簡(jiǎn)單明了;只需把新字體復(fù)制到 /usr/share/fonts/ 目錄中即可(個(gè)體用戶(hù)可以把新字體復(fù)制到 ~/.fonts/ 目錄中來(lái)修 改他們的個(gè)人字體配置)
復(fù)制了linux命令行新字體后,使用 fc-cache 來(lái)更新linux命令行字體信息緩存:
fc-cache
(這里的 應(yīng)該是 /usr/share/fonts/ 或 ~/.fonts/ 目錄。)"
- 我是按這個(gè)辦法把字體拷 ~/.fonts/ 下面做成功的. (不想使用 root 用戶(hù), hh) "個(gè)體用戶(hù)還可以圖形化地安裝linux命令行字體。方法是:在 Nautilus 中瀏覽 fonts:///,然后把 新字體文件拖放到那里。"
- 而這個(gè)辦法我失敗了, 無(wú)論我用普通用戶(hù)還是 root 用戶(hù), 都無(wú)法把linux命令行字體文件 拷貝或者 "拖放" 到 Nautilus 的 fonts:/// 文件夾里. 不知道原因, 只好放棄.
按第一種方式添加成功后, 在 gtk 2 的程序里設(shè)置linux命令行字體的部分都可以自由使用新字體 比如在控制中心里把應(yīng)用程序linux命令行字體都改成 simsum. (另外, 我發(fā)現(xiàn) 10 號(hào)大小的 simsun 效果最好, 不使用單色也非常清晰, 可以考慮使用) 總的來(lái)說(shuō), 為 Redhat Linux 添加linux命令行新字體并沒(méi)有什么太難太神秘的東西, 我個(gè)人做完之 后 覺(jué)得并沒(méi)有想像中那么難, 尤其是 gtk 1.2 程序的字體部分, 不必改別人說(shuō)過(guò)的那么多 文件, 而實(shí)際只要添加完linux命令行字體, 改個(gè) /etc/gtkrc.zh_CN 就搞定了.
讓 Enlightenment 顯示中文
同樣簡(jiǎn)單, 在上面的前提下, 找到你當(dāng)前使用的 E 主題, 如我的是在
~/.enlightenment/themes/AquaX/
進(jìn)入這個(gè)目錄后, 最簡(jiǎn)單的做法:
gedit textclass.cfg
利用 gedit 的替換功能, 把所有關(guān)于linux命令行字體的字符串, 如:
"-*-helvetica-bold-r-normal-*-*-120-*-*-*-*-*-*"
統(tǒng)統(tǒng)替換成和 xmms 一樣的:
-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,
-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r"
保存退出, 清除 E 的緩存, Restart E, 搞定.
Java 的中文顯示
1. JBuilder 的中文問(wèn)題
vi /etc/profile
添加:
JAVA_FONTS=/path/to/your/zhfonts/
export JAVA_FONTS
比如要用剛才弄好的 simsum 和 tahoma 字體, 因?yàn)槲覀円呀?jīng)把它們放在: /usr/share/fonts/local 里面了, 所以這里就可以填:
JAVA_FONTS=/usr/share/fonts/local
注意, JBuilder 顯然用的是 fontconfig 字體子系統(tǒng), 所以, 要讓它認(rèn)出來(lái) 有哪些字體可以用, fonts.scale 和 fonts.dir 這兩個(gè)問(wèn)題無(wú)疑是必需的. 相比較上面核心 X 字體子系統(tǒng)的字體文件夾里, 即我的 ~/.fonts 里面只有l(wèi)inux命令行字體文件和一個(gè)叫 "fonts.cache-1" 的文件, 可以對(duì)比著理解.
能讓 JBuilder 打開(kāi)的程序顯示中文, 但 JBuilder 本身中文有問(wèn)題, 下面:
修改 JBuilder 自己的linux命令行字體配置, 比如我的 JBuilder 裝在:
~/Apps/Devs/JBuilder
那么:
vi ~/Apps/Devs/JBuilder8/jdk1.4/jre/lib/font.properties
把這樣的東西:
serif.0=-b&h -lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
serif.1=--standard symbols l-medium-r-normal--*-%d-*-*-p-*-urw-fontspecific
serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
serif.italic.1=--standard symbols l-medium-r-normal--*-%d-*-*-p-*-urw-fontsp
ecific
統(tǒng)統(tǒng)換成如:
serif.0=-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1
serif.1=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r
serif.italic.0=-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1
serif.italic.1=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r
(還是用上面 xmms 一樣的字體)
所有這些 "*.0=.." 都是描述英文該用什么linux命令行字體 ,而所有 "*.1=..." 都是描述中文該用什么linux命令行字體
最后保存退出, JBuilder 里的英文就都是 tahoma, 所有的中文都是 simsun 自然, 因?yàn)橐呀?jīng)設(shè)置了 JAVA_FONTS , 所以所有 Java 的應(yīng)用程序都能正常找到 中文字體并顯示.
最后注意一點(diǎn), 我自己嘗試失敗的一件事:
記得我們上面配置核心 X 字體子系統(tǒng)時(shí), 在 ~/.fonts/ 里面放置了給 gtk 1.2 程序使用的字體文件, 如果這時(shí)把 JAVA_FONTS 指向這里, 會(huì)出現(xiàn)的現(xiàn)象是:
JBuilder 里面打開(kāi)的程序可以顯示中文 ,但是, JBuilder 自己的窗口無(wú)法顯示中文.
我個(gè)人認(rèn)為和 fontconfig 的 fonts.dir, fonts.scale 以及核心 X 的 "fonts.cache-1" 有關(guān)系, 具體就不懂了. 所以這里可以體驗(yàn)到兩個(gè)字體子系統(tǒng)的差異.
2. j2sdk 的中文問(wèn)題:
上面這樣配置之后, 只有在 JBuilder 環(huán)境內(nèi)開(kāi)發(fā)程序時(shí), 才能正常顯示中文 (因?yàn)?JBuilder 幫你找字體), 而如果我們回到命令行方式使用 j2sdk 開(kāi)發(fā), 這時(shí)會(huì)發(fā)現(xiàn)還是顯示不了中文, 讓我們由此及彼地推想一下, jbuilder 的 jre 里把 font.properties 修改完就能顯示中文, 同樣, j2sdk 下面也有自己的 jre... 沒(méi)錯(cuò)! 只要把我們剛才為 JBuilder 修改完的 fonts.properties 拷 到 $JAVA_HOME/jre/lib 下面, 把它原來(lái)的覆蓋, 一切 OK!
3. j2re 的中文問(wèn)題:
還沒(méi)想到測(cè)試方法, 回頭再說(shuō)...估計(jì)也一樣, j2re 下面的 lib 里一樣有 font.properties, 所以, 應(yīng)該可以再次重用 JBuilder 的 fonts.properties. 總之呢, 這一切都基于你最初要把linux命令行字體添加正確, 其它都好辦了, 拷文件而已.
【編輯推薦】