|
这期作者将继续介绍chdrv 1.0的设定, 包括简体字、萤幕、键盘和列印等部份。 另外,有关整个chdrv的运作情形和使用指引, 也将会详细地介绍给各位读者,以供参考。 |
---|
王佑中 |
---|
BEGIN FONT # 使用国乔的8x16半形字做为chdrv的英文字型 ASCII /usr/local/lib/chinese/kctext16.f00 256 16 # 使用cclib16的字型做为系统的中文字型,且采用HBF格式来描述此字型 HBF /usr/local/lib/chinese/cclib16.hbf ... END FONT |
设定完成後不要忘了执行chconfig,以更新系统中的组态。一切完成後,再将 cclib.16放入CHFONTDIR所指的路径,重新启动系统即可。不要忘了在你的.profile 档中设定CHFONTDIR变数,否则cclib.16应放在系统预设的/usr/local/lib/chinese 中。通常我们都把字型放在预设的地方。这个预设的路径只有在compile时才能改变 ,如果你想使用一个不同的地方,作者鼓励使用重新compiling来达成目的。
如果你用BIG5码那问题比较简单,你唯一需要做的工作是取得kcchin15.f15这个 档案,它是国乔字型的一部份。然後把它拷贝到你的系统目录(通常是/usr/local/ lib/chinese)中。
然後设定/etc/chinese.conf,使它由kcchin16.f00改成kcchin16.f15.然後执行
# ./chconfig /usr/local/lib/chinese/系统重新设定後再启动中文DAEMON chdrv即可。当然不要忘了将kcchin16.f15并将 它放入指定目录(通常是/usr/local/lib/chinese)中。
值得提醒的是在chconfig命令後的路径是不能省略的,如果你犯了错,系统不会 给你任何形式,它只是安静的做一些错误的动作,这曾使我自己迷惑了好一阵子,希 望你不是下一个。
我个人认为,在一开机就执行它是一个好主意,因为它和chdrv本身无关,可以 单独执行。如此一来,一进入chdrv就可以得到一个和倚天相似的操作模式,在将来 加入倚天相容的控制码後,就可以在Linux上得到一个和倚天相容的环境了。
chdrv提供了一支叫做etmode的程式来载入一份新的键定义,实际上在0.99版之 後这支程式会在chdrv执行时被自动呼叫,所以使用并不必自行去呼叫它。也就是说 一进入chdrv後就可以使用倚天模式的键盘了,在1.0後原先的键盘随时可能被移去, 所以不应该再使用它们。
如果你不满意预设的键盘定义,你可以自行修改。例如有人不满意chdrv输入 法的切换键和倚天的不太一样,这一点可以很容易的经由修改keys.tw这个档来改 变。keys.tw这个档是一份完整的键盘定义,它除了Linux预设的之外,还加上了一 些chdrv所以用的按键。这些按键在chdrv使用指引一章中将被提及,这里我提示一 个这个档的格式以让想自己修改的人自行修改。
loadkey的定义档格式很简单,它看起来虽然好像有阶层性的组织,但每一行其 实都是相互独立的。它分为叁个区段,第一个区段定义所有的按键,其格式为
<modify> keycode <key code> = identity<modify>可以是Shift,Alt,Control,AltGR的任意组合,<key code>是0到255 的数字,而identity则可能是一个按键定义或是巨集变数。可用的巨集变数可用 loadkeys -- longinfo得到一个完整的列表。档案中的缩排只是为了方便阅读, 没有实际上的意义,顺序也不重要。第二区段则是所有巨集变数的定义,如
string F217="\033%Z17@"这是chdrv使用来定义alt-ctrl-l的字串,在keys.tw的第一区段中有一行
alt control keycode 17 = F217其它的键也是用同样的方法设定。在此就不多说了,如有问题可以用
# man keytable来查阅说明文件。
PFONTPATH $$然後给定各种字体的字型
PFONTL 隶书 PFONTK 楷书 PFONTM 明体 PFONTD 内定即可。这些字型档和HBF定义档都可在上述的位置上找到。本系统是用cnprint来将输 入转成postscript显示,所以你须还有一个postscript印表机或是postscript的转译 器,例如GNU的Ghostscript来做实际输出的动作。在这篇文章中我不介绍cnprint的 使用,但有关它的使用方法可用
cnprint -h得到一个完整的解说,总的来说,它只是一个列印程式,对文件档并未做任何额外的 处理,也没有任何特殊的字元或命令。它适合做一些简单文件档的列印工作,比较要 求品质的文件应用TeX来处理,有关中文TeX的使用及安装法将另文说明。
BEGIN INPUT 0 /usr/local/lib/chinese/dayi.tbl 1 /usr/local/lib/chinese/NCTU-CSIE-CJ.tbl ... END INPUT |
上述的表格档是指二进位的表格档,你必须把由def定义档先转换成二进位的tbl 档後才能使用。至於这个表格档的格式自行参考NCTU-CSIE-CJ.def就可以明白了,基 本上和震汉中文中的格式类似,在第四章中将会介绍一个用来将cxterm的tit档转换 成def档的程式。
chdrv目前的稳定度己可以做为启动程序的一部份,你可以把它加入rc.local中 ,在其中加入
if [ -x /usr/local/bin/chdrv]; then /usr/local/bin/chdrv& fi
在0.9pl9开始我试着定义一组特殊的逸出序列来执行中文系统状态的设定工作, 而将功能键留给应用程式使用,希望在将来的版本可以完全除去功能键的使用。因此 下列的说明只是为了完整起见,大家应避免使用它们,尤其是在应用程式中,因为将 来的版本中,它们可能被完全除去。各位应直接使用後述的倚天模式键盘。
按键 : F9 说明 : 中英文输人法切换键,相当於dos中文系统中常用的ctrl-space键。 系统会自动记住一上个被使用的中文输入法,如果输入到一半就切换,则系统 会忘记你上一次的内容。 按键 : F10 说明 : 中文输入法选择键。在按下此键後,在状态列会出现一行 Select a input method(0-9)?然後此时按下数字键即可。需注意chdrv在发现你选了一个不适当的输入法时,例如 你没有挂了第叁号输入法,但却选了3时,chdrv会接受你的要求,在状态列的输入法 名称栏会出现[err]的字样,而且也不接受任何输入。按键:F11说明:Mule模式切换 键。Mule在处理时要求以EUC的格式输入,EUC是一种和ISO2022标准相容的编码法, 原本是用於GB码。但目前也被用来处理BIG5码,但由於BIG5码的字数大於ISO2022二 位元组格式的长度,所以BIG5码被分为二段。详细的情形请看MULE中的说明,在此处 只要知道当你使用Mule时记得将Mule模式打开,Mule模式打开时在然态列会出现一个 M字。这个按键目前没有相对应的倚天模式按键。
按键 : F12 说明 : 全形半形切换键。另外倚天系统中的一些按键也可以被使用,事实上在1.0後我建议应该在所有可能的 情况下都使用倚天模式的键盘。下面是可使用的倚天按键
按键 : CTRL-ALT-[1-9] 说明 : 选择第1-9号输入法。 按键 : CTRL-SPACE 说明 : 中文和英数模式间的切换 按键 : SHIFT-SPACE 说明 : 全型文字和半型文字间的切换。 按键 : SHIFT-ALT-[a-z] 说明 : 共26个巨集键,可在英数模式或是中文模式中使用。 每一组按键都在chdrv.mac 中被定义,这个档案预设的定义和倚天中的相同。 所以过去习惯用倚天键盘打字的人可能又发现了一个宝藏。 按键 : CTRL-ALT-R 说明 : 重绘整个萤幕,这和有些软体中可用的ctrl-l来重绘萤幕不同, 它是chdrv 的一商份,它根据chdrv记录的资料来做重绘的工作。 当你发现萤幕上有些乱码时不妨试着用它来清除。注:
本节中的逸出序列在目前的版本尚不完整,但它们应在不久的将来完成,请看版 本随附的NEWS查看它的状况。
格式 : <ESC>%I##; 说明 : 切换输入法的种类,如果选定的输入法在系统中实际上不存在,输入法会进 入错误状态而拒绝任何输入。在状态列上也会有错误的状态出现。 格式 : <ESC>%I; 说明 : 查询目前的输入法,系统会由标准输入传回一个整数,这个整数的义为
0 | 英数模式 |
---|---|
1 | 内码模式 |
2 | 注音模式 |
2+# | 第#号输入法 |
格式 : <ESC>%<string>; 说明 : 将<string>不经输入法驱动程式的转译直接送到输出去。 这通常是在使用kbd 程式设定功能键或组合键定义时使用, 我们可以用它来定义一些常用的巨集字串。 格式 : <ESC>%Z##; 说明 : 将第##号巨集字串送至输出,同样不经输入法驱动程式的影响。 这个功能主要是用来定义如倚天中的片语用,在倚天中我们可以设定由 SHIFT-ALT 组成的组合键。我们虽然可以用上一个格式直接把字串写在 设定Linux的键盘的定义档中,但如此可能占掉太多的记忆空间,因核心 中用来放置键盘定义的空间有限,不可能无限制的定义片语。所以片语 的功能需用此格式定义,如些不论片语的长度多长,我们需的占的空间 是固定的。 格式 : <ESC>%IN; 说明 : 将中文输入模式切换至英数的输入模式。 格式 : <ESC>%IC; 说明 : 将输入模式设定为中文输入模式。 格式 : <ESC>%Ic; 说明 : 如果目前输入模式为中文则切换成英数,反之亦同。 格式 : <ESC>%IT; 说明 : 游标模式设为英文模式。 格式 : <ESC>%It; 说明 : 游标模式为中文模式。 格式 : <ESC>%IF; 说明 : 进入全型模式。 格式 : <ESC>%If; 说明 : 进入半型模式。 格式 : <ESC>%C; 说明 : 萤幕重新扫描,萤幕上每一个字都会重新计算断字的位置, 当萤幕上出现不明原因的乱码时被使用来重绘萤幕。
mkmulti <source>.def <dest>.tbl二个参数都不能省,如果只用一个参数,会以标准输出为输出档。另外还有一支程式 叫tit2def.perl用来将cxterm的输入法表格转换成def档,它是一个perl 4.036的命 令档,perl是一个很适合用来处理文字资料的解释式语言。这个程式在一般的Linux 系统内应都存在,但由於cxterm的格式和chdrv的不尽相同,这个程式主要用来处理 表格的第叁部份,其馀的二部份必须人工来完成,不过这二者都很短,一般来说只要 数分钟就可以设定完成。
随附的NCTU-CSIE-CJ.def就是用这个程式完成,它大约只花了我十几分钟而己。 它的使用方法也很简单,
tit2def.perl < NCTU-CSIE-CJ.tit > NCTU-CSIE-CJ.def至此己将整个chdrv介绍完毕,希望本文能使大家更容易的使用及设定chdrv,若 还有疑问,作者是很愿意和大家同讨论。当然这里还是再提醒大家,很多问题其实早 有答案的,在发问前不妨自己先找找。