版权声明 :
(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正确的完成後你应该已经得到一份可以工
作的系统了。如果有问题,你可以自已处理,或是直接和作者连络,作者的
是(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.24这
二个档。至於格式不管内定或HBF均可,当然用HBF你可以省去很多工作。在这边我
举二个例子说明如何设定
6-2 用BIG5码
如果你用BIG5码那问题比较简单,你唯一需要做的工作是取得kcchin15.f15这个档
案,然後把它拷贝到你的系统目录(通常是/usr/local/lib/chinese)中. 後设定
/etc/chinese.conf使它由kcchin16.f00改成kcchin16.f15. 然後执行
chconfig /usr/local/lib/chinese/
系统重新设定後再启动中文DAEMON ttyserver即可
6-3 用GB码
如果你使用GB码,则你必需使用HBF格式,首先取得cclib.16和cclib16.hbf. 然後
修改/etc/chinese.conf中使用HBF font如下
BEGIN FONT
ASCII /usr/local/lib/chinese/kctext16.f00 256 16
HBF /usr/local/lib/chinese/cclib16.hbf
...
END FONT
然後重新启动系统即可
七 如何设计自己的万能输入法表格
Chdrv中的万能输入法表格之格式是沿用DOS下一个中文系统格的格式
. 它的格式相当直接, 直接阅读系统的□例档dayi.def就可以了解了. 在
这边我提供一个概要使大家能较快了解其内容. 在表格上可区分为三段,
段与段间以%%区隔. 第一段为提供一些旗标的设定, 如在复选时要不要发
出声音来提醒使用者. 目前系统提供的功能相当少, 只有MARK和BELL二个
选项. MARK用来设定状态列上的代表符号, 如
MARK = [大易]
BELL
代表在这个表格生效时在状态列上显示"大易"二个字, 而常复选择时电脑
会出声提醒使用者.
第二段是用来设定当键盘被按下时状态列上所出现的符号. 在中文输
入中, 通常必须2-4 键才能代表一个字, 系统必须在实际送字前先在状态
列上显示一些符号. (我想用过中文系统的人应该知我在说什麽)本段即在
一一将这些符号和键盘上的符号相对应. 为了减少重复, 我们允许连续的
对印不必一一列出. 我用一个例子说明
a 日月星
代表当输入a时状态列显示'日' ,b显示'月', c 显示 '星' . 我们不必把
bc也写出来, 只要它们在ASCII码上是连续的.
第三段是实际的按键--字码对照表,按键和字码以空白分开. 字码只有
二个byte有效, 其後可加上任意的注解.对照表以行为单位一行一字.
CXTERM的TIT档和我们的格式差异不大, 可以半自动的转换. tit2def
便提供这样的功能. 但转完後我们还必须做一些人工的加工工作.
在系统内的注音表格的格式和上述并不相同, 它只有第三段, 且它的
键盘对印一定是四个字母
1 l3 保
四个字母依序为子音,介音,母音,声符.
十 如何使用和内建不同的注音输入法键盘对照表
本节暂时保留, 下一版将有比较简单的做法
九 如何在网路上使用中文
在LINUX中用
tel -8 xxx.xxx.xxx.xxx
就可以使用中文, 但目前因模拟上的缺失故画面有时会混乱. 但目前为
止作者在网路上使用时尚无严重的缺, 最多是按CTRL-L叫它重画而己.
十 如何让chdrv和x-windows共存
Chdrv理论上因为和x-window使用相同的技术, 所以可以和x-window完
全相容. 但为避免不必要的问题, 我们应避开x-window所使用的console.
在SLS和SLackware中x-windows的console设在console#7,CHDRV预设为1-6
故完全没有问题. 但在Debian中x-windows的console设在5, 故我们应
把它自己设到7去.
十一 如何读取HZ格式的文字档
待有心人提供资料
十二 如何使用mule(多语文版本的emacs)
Chdrv可以支援mule所需的EUC格式, F11是切换键, 不过若你原先不是
用mule,或你并不需要多语文的环境,建议你使用13节中的方法使用Emacs.
既简单又可未来版本的Emacs相容.
十三 如何在EMACS 19下直接使用中文
由Emacs 19版後Emacs已可在8-bit模式下运作, 所以想要用Emacs来编辑
中文未必一定要用Mule. 我们可以用Emacs的LISP程式达到我们想要的效果.
你应该把cemacs.el或cemacs.elc之一先拿回来, 它们可以在
NCTUCCCA.EDU.TW:/Chinese/UNIX/Linux/Chinese-TTY
中获得. 把它们放在emacs的lisp目录内, 通常我们把它们放在
/usr/lib/emacs/site-lisp中. 然後用
emacs -nw -l cemacs
来叫出Emacs就可直接使用中文. 我们通常在bashrc中用
alias cemacs='emacs -nw -l cemacs.elc'
以後用cemacs就可以编辑中文.