Linux中文化之Chdrv_HOWTO
版权声明 :(1) 你可以在不涉及商业行为的情况下拷贝,储存本资料
(2) 你可以把它转为书面之形式, 但以一份为限. 且任何书面形式的传 播需取得作者的同意.
(3) 作者保留其它一切相关的权利
(4) 任何转载及加工的行为均不得将版权声明删除
对於任何和本文有关的事项请直接和twchiu2@phys.ntu.edu.tw连络
chdrv是一套用绘图模式来模拟中文终端机的程式,对於惯於使用DOS 的人来说我们可以叫它中文系统,而正式的名称为中文终端机模拟程式。本文即在描述如 何使用这套程式来使LINUX可以直接执行中文有关之动作。
一 如何取得CHDRV
CHDRV可由NCTUCCCA.EDU.TW:/Chinese/UNIX/Linux/Chinese-TTY取得,至本文完成为止最新的版本为0.5pl3。本套程式可分source、binary、font三部份。你至少需取得字型及source,binary二者之一。
二 如何安装
2-1 由原始程式安装
你必须先取得chdrv0.5-2.tar.gz及chdrvfont.tar.gz,然後在/tmp或程何一个 子目录下建一新的子目录,例如叫chdrv,然後用下面命令将它们解开。
gzip -dc chdrv0.5-2.tar.gz | tar xvf -
在成功的解开这二个档案後应该可以得到Makefile和许多其它的档案。接下来你可以在正式安装前根据你的系统对Makefile做适当的修改。值得提醒的是,这个动作通常是不需要的。但你可以经由这个动作指定你的原始程式,执行码及系统档案会被放在那些地方。
接下来打入如下的命令使你的原始程式安装到正确的地方,
make unpack
你应该此时用ls命令确定档案已被拷贝到正确的地方,如果不对可能问题出在你 修改Makefile的时候,请仔细修正。确定无误後你就可以把原来的档案(在/tmp 下的)删除。然後切换到你的工作目录,如果你没有修改的话应该是/usr/local/
src/chinese/,再打入make install。接下来可能要经过一段相当时间的编译动 作(在我的486-33上要15分钟)。当make正确的完成後你应该已经得到一份可以工作的系统了。如果有问题,你可以自已处理,或是直接和作者连络,作者的 email 是(twchiu2@phys.ntu.edu.tw)。
2-2 由二进位码安装
和上述过程比较,二进位码安装是比较简单的。你必须取得chdrvbin05-2.tar.
gz 和chdrvfont.tar.gz二档案,然後在把它们放在一空的目录中,打入
gzip -dc chdrvfont.tar.gz | tar xvf -
然後再打入 ./installbin
应该就可以得到一份可工作的系统了。
三 如何启动CHDRV
CHDRV使用一种类似Client/Server的模式来启动系统,你必须在进入中文模式前先 启动ttyserver这支Server程式,在打入ttyserver後,你会见到系统闪二下,这二 下可能间隔很长。这要视你的机器而定,闪完之後,会回到shell 但没有任何改变 。(当然ttyserver已经在系统内做了很多看不见的动作)你这时可以切换到任何一 个萤幕然後打入ccc 就可以进入中文模式内了。你这时依然可以和平时一样使用Alt-F#切换萤幕,你也可在其它的萤幕上易做图ccc而使其它萤幕也进入中文模式内 。
但请不要在已进入中文模式的萤幕上再打入ccc,这虽然并不会造成伤害,但可以会干扰至系统的连作。另外ccc也可加上 -wx## -wy##两个参数来设定萤幕的长宽 。
有些系统会假设你的VT100萤幕有25列,所以请在使用这种系统时加上ccc -wx80-wy25的参数,此时萤幕的最後四行永远是空白。但有时你会看到有些残留的字在最後四行,此时按下ctrl-l就可以把它清除了。
四 如何设定CHDRV
CHDRV的大部份参数都是在ttyserver启动前被设定,而大部份可设定的参数都被放在/etc/chinese.conf中,如果你已经安装过0.5pl2以後版本的chdrv,应该已经在/etc/chinese.conf中有一份参数,安装程式在此时不会将套装程式中的新参数档放入/etc中。所以如果在新版中你发现有你所需要的参数,请依套装程式中的 chinese.conf档自行加入您的参数档。
而这个参数档的格式如下,在参数档内依参数之种类分成许多区段,每一个区段由 BEGIN 区段名称
....
END 区段名称
包起来。以下分区说明,我们在说明中采用下列惯例
(1) ## 代表数字 如 80
(2) $$ 代表未用引号的字串 如 abcd
(3) '$$'代表有引号的字串 如 'abcd'
(4) *表示该参数目前无作用
4-1 萤幕模式设定格式:
BEGIN WINDOW
END WINDOW
其中可用的参数有
SIZE ## ## 定义萤幕上可见区域的宽度及长度
*FORECOLOR ## 定义前景的颜色
*BACKCOLOR ## 定义背景的颜色
STSTEMCOLOR ## 定义状态列的颜色
4-2 输入法表格格式:
BEGIN INPUT
END INPUT
其中可用的参数有
PHONETIC $$ 定义注音输入法的表格,此参数只能出现一次。
MULTI $$ 定义万能输入法所需的表格,此参数可以出现至多六次,所对应的表格将依序放在第三到八号输入法。
4-3 系统使用字型
格式:
BEGIN FONT
STYLE {INTERNAL|HBF}
END FONT
系统字型可分二种,一种是系统内定格式,一种是HBF(Hanzi Bitmap Font)格式,以下分别说明之。
4-3-1 内定格式字型
当字型区的第一行为STYLE INTERNAL时,系统使用内定字型格式。此时你必须指定中文和英文(ASCII)所需的字型档及该档的格式。举个例说,在系统内定的国乔字型之英文字型档为kctext16.f00,而该档有256bytes的档头且档内每个字是8x16故需使用下列参数
ASCII kctext16.f00 256 16
而其中文字型档的格式较奇怪,刚开始的765字是图型码,所以为16x16的字型,
但其後的中文字为16x14的点阵字。所以应用下列参数
CFONT kcchin16.f00 256 16
1023 411 0 354 0 0
此处1023代表从字型档的第一字到第411字应放在顺序码1023-->1023+411的地方。而字型档第412到765(=411+354)字应在顺序码0-354的地方。这边的顺序码是将0-0x800保留为图型字码,而0x800以後则依序将所有big5的字码排入。故 下一个参数应该为
CFONT kcchin16.f00 24736 14
2047 13094 0 0
最後一对 0 0是表式本列结束,你可以在其後至行末加入一些注解。
所以总结来说,描述一个KC FONT的参数为
ASCII kctext16.f00 256 16
CFONT kcchin16.f00 256 16
1023 411 0 354 0 0
CFONT kcchin16.f00 24736 14
2047 13094 0 0
4-3-2 HBF字型
4-3-2 HBF字型
HBF字型的定义和实作请参考HBF_std_v1.0这份文件,你可以在NCTUCCCA.EDU.TW
的/Chinese/ifcss/software/fonts/HBF中找到它,而在同一个地方也可以找到所有的HBF字型的定义档和相对应的字型档。但在设定字型时你只要拿到正确的字型档和定义档即可,也就是说,如果你用倚天的字型你必须有倚天的定义档。
而当你用cclib16这个简体字字型时你必须拿到cclib16.hbf这个定义义档。
由於HBF中只规定了中文字型档而没有规定如何取用ASCII码的字型档,所以我们 仍沿用内定格式的字型档。要使用HBF字型在字型区的第一行必须为 STYLE HBF 而下一行应为ASCII字型定义。然後以HBF为关□字,
HBF $$
$$为HBF定义档(如前述cclib16.hbf)的完整路径及档名。如
HBF /usr/local/lib/chinese/cclib16.hbf
如此便可。但由於HBF格式的档名均无路径在内,我们必须告诉系统到那去取得字
型档。故需加入一参数以告诉系统字型档的位置
HBF /usr/local/lib/chinese/cclib16.hbf /usr/local/lib/chinese/
如此可以完整设定一个中文HBF字型。
4-3-3 列印字型
列印字型全采HBF格式,无论系统字型是内定或是HBF。你必须先给定印列字型的
路径
路径
PFONTPATH $$
然後给定各种字体的字型
PFONTL 隶书
PFONTK 楷书
PFONTM 明体
PFONTD 内定
即可。这些字型档和HBF定义档都可在上述的位置上找到。本系统是用cnprint来 将输入转成postscript显示,所以你须还有一个postscript印表机或是 postscript的转译器。
五 环境设定
本区中可以让你设定当你进入中文时在shell将控制权交给你前所执行的一些命令 。
在本区中的所有字都会被逐一抄到这个命令档中。所以你可以用它来初始一些环境变数。是有点类似sh中profile的功能。你也可以指定一个~/.chrc的档让每个使用者可以做自已的初始化工作。
六 如何设定一个使用简体字的环境
这个问题应分二方面来说,首先你必须确定你要用那一种内码,目前有GB和BIG5二种可能性。如果你使用BIG5码,你应该用国乔的kcchin16.f15和kcchin24.f15这二个字型档来做列印和显示的工作。如果你使用GB码,那应用cclib.16和cclib.2