目前版本 : 1.0 維護者 : 王佑中(twchiu2@phys.ntu.edu.tw) 最後更新日期 : 02/03/1994 版權聲明 : (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字型 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就可以編輯中文.