Linux目前在全球的用戶已經(jīng)超過900萬人,在中國的用戶也已經(jīng)超過10萬人,去年的增長率超過200%。據(jù)IOS++發(fā)布的統(tǒng)計資料表明,Linux占有全球Web服務(wù)器總數(shù)的28%,比第二名的Windows NT多出5個百分點,在中國的應(yīng)用也越來越廣泛。
一種操作系統(tǒng)在中國的推廣很大程度上取決于運行于它上面的軟件對中文的處理能力。Linux誕生于國外,其歷史不到十年,但由于它作為最流行的免費 UNIX操作系統(tǒng)的獨特魅力,很多其它UNIX系統(tǒng)上的中文軟件已經(jīng)被移植到Linux上,一些專門為Linux設(shè)計的中文軟件也紛紛出現(xiàn),Linux上的中文環(huán)境正在一步步完善。
一個中文環(huán)境一般應(yīng)該具有中文的顯示輸入和打印功能,在目前的Internet環(huán)境下還應(yīng)該包括英漢字典和內(nèi)碼轉(zhuǎn)換工具等等。下面將分別介紹Linux平臺上的各種中文軟件。
字符中文環(huán)境
字符環(huán)境下的中文終端對于內(nèi)存小的用戶和系統(tǒng)管理員來說是一個非常有用的工具,目前中文Console分為直接操作硬件和調(diào)用svgalib兩種方式,輸入法大多使用CXterm的tit格式和Xcin的cin格式。
●chdrv是運行在VGA/SVGA控制臺上的中文終端模擬程序。chdrv由臺灣的王佑中(wycc@iis.sinica.edu.tw)維護(hù),目前最新的版本是chdrv-1.0.10,可從ftp: //linux.cis.nctu.edu.tw/packages/chinese/chdrv/下載,chdrv的特點是必須用root啟動,支持多個虛擬終端。
●yact 與 chdrv 最大不同的地方是: yact 是通過 svgalib 來顯示,如果你的 svgalib 沒有包含你所使用的顯示卡數(shù)據(jù),可能無法使用這個系統(tǒng)。yact的特點是支持1024×768分辨率和24點陣的字庫。
下載地址為ftp://linux.cis.nctu.edu.tw/packages/chinese/yact/yactp4.tar.gz
●bcs16:由于 yact 需要使用 svgalib 1024×768 模式,顯示卡支持并不十分良好, bcs16 就是針對此缺點而由 yact 修改而來的。它僅需 640×480 分辨率,因而能在大部分的顯示卡上執(zhí)行。
下載地址為ftp://linux.cis.nctu.edu.tw/packages/chinese/bcs/bcs007a.tgz
●WZCE 是為眾中文系統(tǒng),是shareware,支持多種輸入法,可以在ftp://ftp.ihep.ac.cn/pub/chinese/system/wzce-linux-elf-2.22n.tgz下載。
●CCE 是從bcs16改編而來,支持GB內(nèi)碼,由清華大學(xué)的何悅開發(fā)。可以在ftp://ftp.turbolinux.com.cn/pub/chinese/system/下載。
●A4TTY 可以同時支持Big5和GBK內(nèi)碼,可以在ftp://linux.okstation.com/下載。
●KONGB 由筆者從日文版KON移植而來,可以在Linux和FreeBSD上運行。在 ftp://ftp.turbolinux.com.cn/pub/chinese/system下載。
X Window 下的中文軟件
X Window下的中文軟件可以分為單獨的應(yīng)用軟件和中文平臺兩種方式。最早出現(xiàn)的中文軟件就是CXterm。這是一個經(jīng)過修改的XTerm,可以直接在 Term中輸入和顯示中文,支持Big5、GB、HZ等內(nèi)碼,下載地址為ftp://ftp.ifcss.org/pub/software/x- win/cxterm/。其次是臺灣的Xcin+Rxvt,是在臺灣地區(qū)使用比較廣泛的一種輸入解決方案,其特點是加上XA之后可以在不同的X Window應(yīng)用程序中輸入中文。GB版本下載地址為ftp://ftp.ihep.ac.cn/pub/chinese/system/xcingb- 2.2.tar.gz。
目前在X Window下的中文平臺的實現(xiàn)方法有兩種,一種是利用包裝原理(Wrapper):“包裝”(WRAP)方案利用了很多UNIX系統(tǒng)運行動態(tài)連接的程序時的PRELOAD機(jī)制,對X Window系統(tǒng)函數(shù)動態(tài)庫中的某些函數(shù)進(jìn)行了“包裝”和替換,使之實現(xiàn)支持中文顯示,并可與中文輸入服務(wù)器連接實現(xiàn)中文輸入。
利用動態(tài)連接的PRELOAD機(jī)制,我們可以對X Window系統(tǒng)的某些函數(shù)進(jìn)行“包裝”,以使原來只是用來處理ASCII碼的函數(shù)可以根據(jù)輸入情況有區(qū)別地處理ASCII碼和中文的編碼,并把“包裝” 后的函數(shù)做成共享庫,利用設(shè)置LD—PRELOAD變量使一個應(yīng)用程序調(diào)用“包裝”后的X函數(shù),而不是直接調(diào)用X函數(shù)庫中的函數(shù),從而實現(xiàn)不用更改應(yīng)用程序的源代碼而使它們支持中文處理!
一般來說需要修改的是XDrawString等顯示字符串的X11函數(shù)。目前實現(xiàn)包裝機(jī)制的中文平臺有XA、Zhwin、ZWinPro等,分別可以在下列地址下載:
ftp://ftp.ihep.ac.cn/pub/chinese/system/xa-1.0.4.tgz
ftp://freesoft.cei.gov.cn/
ftp://ftp.turbolinux.com.cn/pub/
其中XA是最早出現(xiàn)的包裝程序,相對比較簡陋;Zhwin是由宮敏先生開發(fā),基于Chinput的;ZWinPro為于明儉和陳向陽先生開發(fā),比較完善,能夠支持多內(nèi)碼和屏幕抓詞,并且支持True Type Fonts。
另外一種實現(xiàn)方式是直接修改X Server,首先實現(xiàn)的是Big5版本,可以在ftp: //linux.cis.nctu.edu.tw/packages/X/Xserver/CXwin/下載,GB版本可以在ftp: //freesoft.cei.gov.cn/下載。
目前已經(jīng)有可以支持True Type Fonts的X Server,可以通過freetype這套程序庫實現(xiàn)X下的中文字的無級縮放功能。
支持GBK,可以在ftp://ftp.turbolinux.com.cn下載。至于其他的中文軟件如: chpower、hztty、cdict、xdict、xemacs+mule、hc、lyx、ezwgl、chinput,此處不再一一詳細(xì)敘述。
Linux下的中文打印問題
目前Linux上的打印系統(tǒng)通常是用nenscript(或mpage)把非PostScript文件轉(zhuǎn)換成PostScript文件(對 PostScript文件則作改變),由Ghostscript對PostScript文件進(jìn)行轉(zhuǎn)換后輸送到打印機(jī)上。所以中文打印的關(guān)鍵在于如何生成 Ghostscript可以讀的中文PostScript文件。但由于沒有中文PostScript字庫體系,現(xiàn)有的可形成PostScript文件的中文軟件(如chpower和中文LaTeX(CJK))大都是把用到的漢字字型以位圖或輪廓形式全部存儲在PostScript文件中,而不是像西文那樣,使用外部的PostScript字庫體系。這就導(dǎo)致PostScript文件體積太大,且打印效果欠佳。所以,必須盡快確立中文PostScript 字庫體系,構(gòu)造中文PostScript字庫,使中文PostScript文件的結(jié)構(gòu)盡可能地接近西文PostScript文件,以保證盡可能地與現(xiàn)有的軟件兼容。
陳向陽先生分析了目前各種中文軟件對中文字庫的處理方法并參考了日文文字處理軟件,總結(jié)出一套中文(GB)PostScript字庫,初步建立了構(gòu)造和使用中文(GB)PostScript字庫的基本原則。中文(GB)PostScript字庫目前包含四種字體,即宋體、黑體、楷體、仿宋體。對每種字體,有94個中文Type1 PostScript字庫文件,以PFB(Printer Font Binary)的格式存儲,它們分別對應(yīng)于GB 2312-80編碼的94個區(qū)(0xA1-0xFE):
字庫名 字庫文件 gb-songa1~gb-songfe gbsonga1.pfb~gbsongfe.pfb gb-h(huán)eia1~gb-h(huán)eife gbheia1.pfb~gbheife.pfb gb-kaia1~gb-kaife gbkaia1.pfb~gbkaife.pfb gb-fangsonga1~gb-fangsongfe gbfsa1.pfb~gbfsfe.pfb
這些*.pfb文件是從中文(GB)TrueType字庫(TTF)文件產(chǎn)生,作者對LaTeX的中日韓文擴(kuò)展——CJK軟件包中的ntu2cjk程序進(jìn)行了修改,使之能從中文(GB)TrueType字庫(TTF)文件產(chǎn)生中文(GB)PostScript字庫文件。目前已有一些中文軟件開始使用中文TrueType字庫,TrueType字庫在中文打印方面比點陣字庫所具有的優(yōu)勢是不言而喻的。所以,以后UNIX上中文打印的發(fā)展方向是利用 TrueType字庫更方便地產(chǎn)生高質(zhì)量的中文輸出。
在上述Type1中文PostScript字庫的基礎(chǔ)上,定義了四種Type0(復(fù)合型)中文(GB)基本字庫:
GB-Song(字庫文件GB-Song.ps);
GB-Hei(字庫文件GB-Hei.ps);
GB-Kai(字庫文件GB-Kai.ps);
GB-FangSong(字庫文件GB-FangSong.ps )。
中文(GB)PostScript字庫軟件包當(dāng)前版本為psfonts-gb-1.0.tar.gz,存放地址為ftp://ftp.ihep.ac.cn/pub/chinese/packages/。
目前的中文Distrubution現(xiàn)狀
可以說,上面介紹的中文軟件,大體上已經(jīng)解決了Linux平臺上中文的顯示輸入和打印的問題,所以目前所欠缺的只是一個比較好的集成中文環(huán)境。下面簡單介紹一下:
目前的中文發(fā)行版本主要有下面幾種:
Chinese Linux Extention ( Big5 ),下載:http://cle.linux.org.tw
TurboLinux Chinese Version (GB),下載:http://www.turbolinux.com.cn
Xteam Linux (GB),下載:http://www.xteam.com.cn
基本上這幾個版本都是基于上面的這些GPL的中文軟件開發(fā)的。對于中文用戶來說,不久就會像其他語種的用戶一樣,擁有本地化的Linux發(fā)行版本了。