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