Linux中文化之Chdrv_HOWTO

发表于:2007-07-04来源:作者:点击数: 标签:
版权声明 : (1) 你可以在不涉及商业行为的情况下拷贝,储存本资料 (2) 你可以把它转为书面之形式, 但以一份为限. 且任何书面形式的传 播需取得作者的同意. (3) 作者保留其它一切相关的权利 (4) 任何转载及加工的行为均不得将版权声明删除 对於任何和本文有关

  版权声明 :
  (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已经在系统内做了很多看不见的动作)你这时可以切换到任何一 个萤幕然後打入clearcase/" target="_blank" >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就可以编辑中文.
  
  
  
  
  

原文转自:http://www.ltesting.net