まず、自分専用の辞書(単語登録した際に登録される辞書)を作成する。
% cannacheck -v cannaserverのホスト名として、
単語登録用辞書 "user"を指定しています。という行が表示されれば、すでに出来ている。user が表示さ れなければ、
% mkdic -cs cannaserverのホスト名 user New dictionary "user" is created. Please change customize file.
で、作る。ここで、``Please change customize file.'' は、 ~/.canna ファイルに、
(use-dictionary ... :user "user" ;この行 )
があるかどうかで、なければ追加しなさい、の意味。
次に、個人別頻度ファイルの作成をおこなう。大きなシステム辞書について は、頻度情報を個人で持った方がよい。そうしないと、他の人が最後に変換 した単語が、候補の最初に出てきてしまう。どういうシステム辞書があるか は、
% lsdic -a -cs cannaserverのホスト名
とすれば、表示される。ただし、ここで表示されるすべての辞書に ついて、個人別頻度ファイルを作成する必要はない(できない)。個人別頻度ファ イルが作成できるのは、バイナリー辞書で、システムの頻度ファイルが存在す るもの(たぶん、自立語辞書)だけである。実際にその条件を満たすシステム辞 書は、cannaserver の動いているホストの、システムの dics.dir を見るとわ かる。dics.dir ファイルは、FreeBSDでは、 /usr/local/share/canna/dic/canna/ (古いシステムでは、 /usr/local/lib/canna/dic/canna/なので、以下の記述は、読みかえること) に存在する。
canna では 頻度ファイルは .cld の拡張子なので、cannaserver の動いているホストで、
% grep cld /usr/local/share/canna/dic/canna/dics.dir gcanna.cld(gcanna.mwd) -gcanna---として表示される gcanna (右端の - と -- で囲まれた部分) について、
% mkdic -fq -cs cannaserverのホスト名 gcanna
とすれば、システム辞書 gcanna についての、個人別頻度ファイルが 作成される。個人別頻度ファイルは、cannaserverの動いているホストの /usr/local/share/canna/dic/user/ユーザー名/ 以下に出来る。 /usr/local/share/canna/dic/user/ユーザー名/dics.dir ファイルの中身を見て みよう。
なお、このように 個人別頻度ファイルを作成した後で、システム辞書が変更さ れると(管理者がより強力な辞書に入れ換えた場合など)、個人別頻度ファイルと システムの頻度ファイルに矛盾が生じて、そのシステム辞書が使えなくなる。
% cannacheck -cs cannaserverのホスト名すると、
XXXXXをマウントできませんでしたといわれる。この場合には、再度、個人別頻度ファイルを作りなおす必要がある。
% rmdic -fq -cs cannaserverのホスト XXXXX % mkdic -fq -cs cannaserverのホスト XXXXX
以上の操作は、コマンドに ``-cs cannaserverのホスト名'' を付けて実行し たことからもわかるように、変換サーバーのカスタマイズであり(つまり、 「かな」から「漢字」にどのように変換するか)、変換クライアント (kinput2 や canna/mule、tamago4/emacs) とは独立なカスタマイズである。
キーボードからキーを入力した際に、画面上にどのような文字(かな)を表 示するかは、変換クライアントの仕事である。普通は、ローマ字入力が多 いが、カスタマイズすれば、「かな入力」も可能になる。
これらの変換クライアントは、~/.canna ファイルでカスタ マイズを行う。~/.canna ファイルが存在しない場合は、 /usr/local/share/canna/default.canna が使われる。
自分の home directory に、.canna が存在しない場合は、 /usr/local/share/canna/sample/ directory にカスタマイズ用のサンプル ファイルがあるので、ひとつをコピーする。普通は、unix.canna ファイル でよいが、ATOKの入力に慣れている場合には、just.canna の方がよいかも しれない。
% cp /usr/local/share/canna/sample/unix.canna ~/.canna
~/.cannaファイルでの基本的なカスタマイズのみを書く。詳しいことは、 cannaのマニュアル のカスタマイズの章を参照。
(setq romkana-table "default.cbp")
default.cbp は、/usr/local/share/canna/dic/default.cbpにある。こ の directory には、just.cbp(ATOK風)、vje.cbp(VJE風)などいくつかの 変換テーブルがあるので、default.cbp を適当なものに変更すればその変 換テーブルに変わる。ただし、このファイル自体はバイナリーファイルで、 どういう変換テーブルなのかわからない。変換テーブルのソースファイル は、/usr/local/share/canna/sample/src/ 以下に同じファイル名である (拡張子は .ctd)ので、眺めてみよう。
自分で、ローマ字かな変換テーブルをカスタマイズするためには、 /usr/local/share/canna/sample/src/ のファイルのひとつを持ってきて、 編集し、変換テーブルのバイナリーファイルを作成して、home directory に置けば良い。
% cp /usr/local/share/canna/sample/src/default.ctd my-table.ctd % emacs my-table.ctd (編集) % mkromdic my-table.ctdで、my-table.cbp を作製し、~/.canna ファイルを、
(setq romkana-table "my-table.cbp")
に変更して、kinput2などを再起動すれば、変更される。
;;; 利用する辞書 (use-dictionary "gcanna" "fuzokugo" "hojomwd" "hojoswd" :bushu "bushu" :user "user" )
の部分で、実際に利用する辞書を定義している。
% lsdic -a -cs cannaserverのホスト名
で表示される辞書で、ここにないものは、追加しておこう。実際に、 使用している辞書は、
% cannacheck -v -cs cannaserverのホスト名
で確認できる。
canna では Help キーで、拡張モードに入り、単語登録や各種設定、記号 入力などが出来る。Help キーのないキーボードもあるので、
(global-set-key "\F1" 'extend-mode)
を入れておくと、F1キーで、拡張モードに入れるようになる。
tamago4は、変換サーバーとして cannaも利用できる Wnn の変換クライア ントであり、.canna ファイルは読まない。.canna ファイルに対応するの は、.eggrc ファイルであるが、.cannaのような細かいカスタマイズは出 来ない。~/.eggrc ファイルが存在しない場合は、 /usr/local/share/emacs/21.3/site-lisp/egg/eggrc が読まれる。
~/.eggrc ファイルでは、使う辞書の指定をする。
/usr/local/share/emacs/21.3/site-lisp/egg/eggrc には、変換サーバー
として、Wnn と canna を使う場合の両方の記述があるが、canna を使う
場合には、
(canna-define-environment) ;(canna-add-dict "iroha" nil) ; nil は書き込みしない (canna-add-dict "gcanna" nil) (canna-add-dict "gcannaf" nil) ... (canna-add-dict "user" t) ; t は書き込みする
~.canna ファイルの場合と同様に、lsdic -a で表示 される辞書は、追加しておこう。
現在の tamago4 では、kinput2, canna/mule の様に、洗練された方法 でのカスタマイズはできない。ローマ字かな変換テーブルは、 /usr/local/share/emacs/21.3/site-lisp/egg/its/hira.el に書き込ま れていて、これを変更するには、~/.emacs または ~/.emacs.el ファイルで 再定義するしかないようである。
例えば、default のテーブルでは、``lalilulelo'' と入力すると ``らりる れろ``に変換されるが、これを''ぁぃぅぇぉ''にするには、
(defun my-customize-romaji-tamago4-hira () (interactive) (define-its-state-machine-append its-hira-map (its-defrule "la" "ぁ" nil t) (its-defrule "li" "ぃ" nil t) (its-defrule "lu" "ぅ" nil t) (its-defrule "le" "ぇ" nil t) (its-defrule "lo" "ぉ" nil t) ) ) (eval-after-load "its/hira" '(my-customize-romaji-tamago4-hira))
を、~.emacs.el(または、~.emacs) に書く。筆者は、記号や数字が全角文字ではなくアルファベットで出た方が便利なので、
(its-defrule "(" "(" nil t) (its-defrule ")" ")" nil t) (its-defrule ":" ":" nil t) (its-defrule "*" "*" nil t) (its-defrule "!" "!" nil t) (its-defrule "%" "%" nil t) (its-defrule "\\" "\\" nil t) (its-defrule "@" "@" nil t) (its-defrule "\"" "\"" nil t) (its-defrule "1" "1" nil t) (its-defrule "1" "1" nil t) (its-defrule "2" "2" nil t) (its-defrule "3" "3" nil t) (its-defrule "4" "4" nil t) (its-defrule "5" "5" nil t) (its-defrule "6" "6" nil t) (its-defrule "7" "7" nil t) (its-defrule "8" "8" nil t) (its-defrule "9" "9" nil t) (its-defrule "0" "0" nil t)という記述(実際にはもう少し多い)も、上記の its-hira-map に加えている。 このように設定した後で、全角の記号や数字を入力したい場合には、 "Z" の後に、その記号を入力すればよい。 余談だが、tamagoでは、小文字の "z" の後にキーを押すと、 色々な記号がでるようになっているので、試してみると面白い。
canna を使っていて、tamago4 に乗り換えると戸惑うのが、変換候補のリストが 自動的に出ないことである。変換モードで、ESC-s で出すことができるが、 自動的に出すようにするには、
(setq egg-conversion-auto-candidate-menu 1)とする。0にすると、候補一覧を表示しない。
(setq menudiag-select-without-return t)
もっと色々とカスタマイズ可能なので、この辺を参考にしてください。
http://sodan.org/~knagano/emacs/tamagov4.html
http://phe.phyas.aichi-edu.ac.jp/~cyamauch/pl2_emacs21.html
変換できなかった単語や、単語だけでなく頻繁に使う長い文章などはユーザー辞 書に登録しておくと、以降の変換効率が上がるので、できるだけ登録しよう。
単語登録したいということは、その単語が変換されなかったということで、 その単語を出すために、すでに、何らかの操作をしているはず。kinput2 から登録する場合は、その操作をもう一度する必要があるので、やや不便。
なお、途中で「拡張メニュー」から抜けるためには、C-g を押す。
再度、単語を変換する必要はない。「リージョン」とは、マークした位置か ら現在のカーソルの位置までの領域を指す。。マークするためには、 C-Space。X の場合は、マウスの左クリックしながら、領域を選ぶことでも、 リージョンに入れることができる。なお、ESC-x の後は、TABで補完ができ る。候補が複数ある場合は、再度TABを押すと、候補一覧がでる。
ESC-x egg-toroku-region などの操作が面倒であれば、キー にバインドしておこう。例えば、F7にバインドするためには、 canna/mule では、~/.emacs に
(global-set-key [f7] 'canna-touroku-region) ;; F7 で touroku-region
tamago4/emacs では、~/.emacs.el に
(global-set-key [f7] 'egg-toroku-region) ;; F7 で toroku-regionと書く。
% catdic -cs cannaserverのホスト名 userで得られる。出力としては、例えば、
FreeBSD #T30 http://www.jp.freebsd.org/ こぴぺ #T35 コピー&ペースト そふとゑあ #T35 ソフトウェア どしー #T35 \\textcelsius{} みかみね #CN 三神峯 おろかもの #T35 悪露化者 よろしく #T35 宜しくお願い致します。のように、読み 品詞コード 漢字(でなくてもよい) になっている (辞書ファイルの形式参照)。。
% echo 'おろかもの #T35 悪露化者' | delwords -cs ホスト名 userとする。
% echo 'おろかもの #T35 愚か者' | addwords -cs ホスト名 userとする。
% echo 'とんぺい #T35 Tohoku\ University' | addwords -cs ホスト名 userでOK。
% echo '\\\\ #T35 \\textbackslash{}' | addwords -cs ホスト名 userでOK。
% addwords -cs cannaserverのホスト名 -l hoge.t userでよい。逆に、辞書から一括削除するためには、
% delwords -cs cannaserverのホスト名 user < hoge.tで OK。