next up previous
: 3 cannaによる日本語入力のカスタマイズ法(基本編) : cannaによる日本語入力 : 1 UNIXでの日本語入力の仕組み


2 canna を使う最低限の設定と使い方

canna をいくつかのアプリケーションから使う時の最低限の設定を書く。 に示したように、canna を使う際に、変換 クライアント(kinput2)を経由 (その際、XIMプロトコルで通信) して変換を 行うものと、自前で変換クライアント機能を内蔵しているもの (mule や emacs) に大別できる。

2.1 kinput2を経由した日本語入力

kterm, tgif, mozilla, sylpheed, gimp などの X 上のアプリケーションは、変換ク ライアントである kinput2 経由で、日本語入力をおこなう。この時、通信のプ ロトコルとして、XIM プロトコルを用いる。

2.1.1 kinput2 の起動

通常は、X から login した場合に実行される ~/.xsession で起動する。kinput2 が起動しているかどうかは、

    % ps uxw | grep kinput2 
で確認することが出来る。何も表示されない場合は、
     % kinput2 -canna -cs cannaserverのホスト名 &
と手動で立ち上げるか、~/.xsession に書いて login し直す。ここで、-canna は、変換サーバーとしてcannaサーバーと通 信することを表し、そのサーバーのホスト名を -cs オプションで与える。 kinput2がどの変換サーバーと通信 できるかはコンパイル時のオプションで決まっていて、
    % kinput2 -version
で確認できる。その結果、例えば、
     kinput2 version 3.1  (2002/10/03)
        options: [Wnn] [Canna2]
であれば、Canna と Wnn に対応しているので、-canna は必須だが、
        options: [Canna2]
だけであれば、Cannaとしか通信できないので、-canna は不要である。

また、cannaserverのホスト名は、stex の場合は、s1 を指定する。なお、 環境変数 CANNAHOST が設定されていれば、それを読むので、-cs の指定 はなくてもよい。kinput2 を立ち上げたときに、変換サーバーと通信で きない場合には、

         Warning: かな漢字変換サーバと通信できません
というメッセージを出し、実際にアプリケーションで、"かな" から" 漢字" に変換しようとしたときに、同じメッセージを出す。この時は、
	 % cannacheck -v -cs cannaserverのホスト名
で、cannaserver が立ち上がっているか確認し、立ち上がっていない 場合には、管理者に連絡して、立ち上げてもらう。

2.1.2 環境変数の指定と日本語入力の ON/OFF

通常、XIM プロトコルに対応した国際化したアプリケーションは、環境変数 XMODIFIERS を見て、変換クライアントを探す。そこでは、

      LANG=ja_JP.eucJP
      XMODIFIERS=@im=kinput2
のふたつの環境変数が関係する。現在設定されている環境変数は (csh,tcshの場合)、
     % printenv 
で見ることができる。ふたつの環境変数が設定されていないときは、
 
     % setenv LANG ja_JP.eucJP
     % setenv XMODIFIERS "@im=kinput2"
 
と入力して設定するか、または、これらを /.cshrc に書いて、
     % source ~/.cshrc
で、再度読み込む。



各アプリケーションで、日本語入力の起動

以上が正しく設定されていれば、日本語を入力したい場所で、Shift キーを押し ながら Space キーを押すと、日本語入力モードになる。何も起こらない場合は 設定を見直す。アルファベット入力モードに戻るには、再度、Shift + Space を 押す。また、Ctrl + o (オー) でも、同様な動作になる。

2.1.3 うまく行かない場合

上記の設定だけでうまく行かない場合は、いくつかの可能性が考えられる。

XIMに対応していないアプリケーション

国際化していないアプリケーション(英語だけにしか対応していないもの)では、 日本語入力はできない。例えば、現在のところ、UNIX上の Acrobat Reader (acroread) は、英語版しか配布されていないので、検索窓で、日本語入力はできない。

XIMだけでなく複数のプロトコルに対応しているアプリケーション

XIM プロトコルが標準となったのは、比較的最近であるため、最近開発されたア プリケーションは XIM だけに対応しているものも多いが、逆に、古くから開発が 行われてきたものの中には、XIM だけでなく、他のプロトコルにも対応していて、 そのためにうまくいかないことがある。

XIM に対応していない場合はあきらめるしかないが、複数のプロトコルに対応し ている場合には、設定を正しく行えば、日本語入力が可能になる。ただし、その 設定はアプリケーション毎に異なるので、それぞれのアプリケーションの manual page や 開発元の WEB page や インターネットで検索して設定するしかない。 また、周りに詳しい人がいれば、その人に聞くのが早道である。 一例として、お絵書きソフト tgif の場合について、関係する設定を Appendixに書いておく。

2.2 mule から canna を使う

mule では、変換クライアント機能を内蔵した canna(canna.el)9 を利用できる ので、 kinput2 を必要としない10。 必要最低限の設定は、~ /.emacs ファイルの

    (load-library "canna")
    (setq canna-server "cannaサーバーのホスト名")
    (canna)
の3行である。ここで、cannaサーバーのホスト名は、stex の場合は、 s1 とする。Ctrl + o (おー) で、日本語入力の ON/OFF を行う。
    (global-set-key "\C-\ " 'canna-toggle-japanese-mode)
を加えると、Ctrl + \でも、日本語入力の ON/OFF が行えるようになる。

2.3 emacs(21.X)から、canna を使う

普通に作成した emacs2111 は、XIM に対応しているので、X 上で立ち上げた emacs の場合、kinput2 経由での日本語入力が可能である。 kinput2 を経由した日本語入力で述べたように、Shift + Space (または、Ctlr + o ) で日本語入力の ON/OFF が行える。ただし、この方 法では、X環境以外 (例えば、Windows機から login している場合) では日本 語入力が出来ない。また、以下に説明する emacs自体の変換クライアント機能は、 強力なカスタマイズができるので、kinput2 による日本語入力ではなく、emacs 自体の変換クライアント機能を使うことを強く勧める。

このセクションで説明する emacs 自体の変換クライアント機能を使う場合には、 XIM 経由での日本語入力機能は不必要であるだけでなく、邪魔になる場合がある。 例えば、「漢字変換モード]で、変換対象の文節を伸ばそうとして、Ctrl+o を押 すと、XIM の ON/OFF になってしまい、文節を伸ばすことができない。XIM機能を使 わなくするためには、環境変数 XMODIFIERS を未設定にすれば良いのだが、シェ ル環境全体でこのように設定してしまうと、他の X アプリケーションからも、 日本語入力ができなくなってしまうので、emacs の場合だけに、そうするには、 ~/.cshrc に

alias emacs env XMODIFIERS=@im=none emacs
と書いて、login し直すか、すぐに反映させるためには、
           % source ~/.cshrc
で、設定を再読み込みする。

emacs 20 以降では、mule の機能の多くは、emacs 本体に統合されたが、 canna.el や たまご(Wnnのemacsクライアント)の機能は、含まれていない。 kinput2 に頼らず、emacs 単独で日本語入力環境を整えるために、いくつかの方 法が行われている。

Emcws

emacs に パッチを当てて、mule と同じ様に、Canna,Wnn,Sj3サーバーと 通信できるようにする。Emacs + Canna + Wnn + Sj3 の頭文字をとって、 Emcws と呼ばれる。
http://emacs-20.ki.nu/emcws.shtml

tamago Ver.4

emacs 本体はそのままで、emacs lisp だけで、Canna,Wnn,Sj3サーバーと通信で きるようにする。たまご は、元々、Wnn に 対する Emacs 上の変換クライアントの名前であり、tamago Ver.4 は、たまごの インターフェースで、変換サーバーとしては、Canna や Sj3 も使うことができ る。
http://www.m17n.org/tamago/index.ja.html

yc.el

emacs lisp だけで、Cannaサーバーと通信する変換クライアント。boiled-eggの機能もあるのが特徴。
http://www.ceres.dti.ne.jp/ ~knak/yc.html

これらの他にも、 いくつかの方法がある ようであるが、 ここでは、Muleプロジェクトの後継のひとつ として開発されている tamagoVer.412 を用いた方法を述べる。 以後の記述は、FreeBSD の ports でインストールした tamago Ver.4 を対象にしている。現在、ports でインストールすると、tamago-4.0.6-20011028.patch というパッチが当たったものが作られるので、 元々の tamago4 とは、少し違うかも知れない。

tamago Ver.4 がインストールされているかは、システムの emacs lisp directory にegg directory があるかどうかで判断できる。FreeBSD 4.X 上の emacs 21.3 の場合は、

    /usr/local/share/emacs/21.3/site-lisp/egg/
という directory があれば、tamago Ver.4 が使えると考えて良い。 FreeBSD の ports でインストールする場合は、/usr/ports/editors/tamago。 システムに、tamago Ver.4 がインストールされていれば、~/.emacs または ~/.emacs.el 13 に次の記述を加えれば、canna が使えるようになる.
    (setq default-input-method "japanese-egg-canna")
    (setq canna-hostname "cannaサーバーのホスト名")
ここで、cannaサーバーのホスト名は、stex の場合は、s1 とする。 Ctrl + \で、日本語入力の ON/OFF を行う(たまごの標準キー)。 mule やkinput2 の場合のように、Ctrl + o でも、ON/OFF を行うためには、
    (global-set-key "\C-o" 'toggle-input-method)
を加える。

2.4 kinput2 と canna/mule と tamago4/emacs でのキーバインド

これらは、基本的な操作には、大きな差はない。また、キーバインドは、設定 ファイルでカスタマイズ可能である。以下では、ローマ字入力で「ひらがな」 が表示されている状態をフェンスモード、Spaceキーを押して文節を分割 し、漢字に変換された状態を漢字変換モードと呼ぶ。 C-x は、Ctrl キーを 押しながらxキーを押す操作を表し、ESC-x は、ESCキーを押した後で x キーを 押すことを表す。

変換起動キーと変換終了キー(括弧内は、キーにバインドした場合)

kinput2 canna/mule tamago4/emacs
Shift+Space, C-o C-o, (C-\) C-\, (C-o)

フェンスモードでのキーバインド

機能 kinput2 canna/mule tamago4/emacs
漢字変換モードへ Space Space Space, C-w
現在のまま確定 Return,C-m Return,C-m Return,C-m
左に移動 ←, C-b ←, C-b ←, C-b
右に移動 →, C-f →, C-f →, C-f
左端へ移動 C-a C-a C-a
右端へ移動 C-e C-e C-e
前の1文字削除${}^{*1}$ BS, C-h BS, C-h BS, C-h
カーソル上の1文字削除${}^{*1}$ DEL, C-d DEL, C-d DEL, C-d
カーソル以降を削除 C-k C-k C-k
フェンス内を消去 C-g C-g C-c
字種変換${}^{*2}$ ↑,C-p,↓,C-n ↑,C-p,↓,C-n  
全角大文字に${}^{*2}$ C-u C-u  
全角小文字に${}^{*2}$ C-l C-l  
canna拡張モードへ HELP${}^{*3}$ HELP${}^{*4}$  
ひらがなに     ESC-h
カタカナに     ESC-k
全角文字に${}^{*5}$     ESC->
半角文字に${}^{*5}$     ESC-<
半角英数入力${}^{*6}$     q
全角英数入力${}^{*6}$     Q
全角スペースの入力 @@ @@ Q Space

* 1 : DEL や BS キーの動作は、.canna や .emacs の設定に依存する。
* 2 : この後、↑(C-p)、↓(C-n) で、 ひらがな ←→ カタカナ ←→ 半角カタカナ ←→ 全角英数 ←→ 半角英数 を循環する。 canna のこのモードを、字種変換モードと言う。
* 3 : HELPキーのない場合は、.canna に (global-set-key "\F1" 'extend-mode) と書いておけば、F1 を代用できる。
* 4 : HELPキーのない場合は、ESC-x canna-extend-mode を適当なキーにバインドすればよい。
* 5 : フェンス内のアルファベットのみが変換され、かなには影響しない。
* 6 : 入力後、確定すれば、通常のローマ字入力に戻る。同じフェンス内でロー マ字入力に戻るには、C-g。

漢字変換モードでのキーバインド

機能 kinput2 canna/mule tamago4/emacs
現在のまま確定 Return,C-m Return,C-m Return,C-m
フェンスモードへ戻る C-g,BS C-g,BS C-c,BS
現文節をフェンスモードへ C-c C-c  
文節を伸ばす C-o C-o C-o
文節を縮める C-i C-i C-i
次の候補 Space,C-n,↓ Space,C-n,↓ Space,C-n,↓
前の候補 C-p,↑ C-p,↑ C-p,↑
候補一覧表示 Space2回,C-w Space2回,C-w ESC-s
左文節に移動 ←, C-b ←, C-b ←, C-b
右文節に移動 →, C-f →, C-f →, C-f
左端文節へ移動 C-a C-a C-a
右端文節へ移動 C-e C-e C-e
現文節を全角大文字に${}^{*1}$ C-u C-u  
現文節を全角小文字に${}^{*1}$ C-l C-l  
現文節をひらがなに     ESC-h
現文節をカタカナに     ESC-k
* 1 : この後、現文節が字種変換モードになる。



... canna(canna.el)9
以下、mule上で動く canna を canna/mule と表記する。
... を必要としない10
mule のベースである emacs 19 は、 XIMプロトコルに対応していないので、kinput2と通信できない。
... emacs2111
コンパイル時の指定で、without_xim を指 定すると、XIM 非対応の emacs が作成される
... tamagoVer.412
以後、この emacs 上の tamago Ver.4 を tamago4/emacs と表記する。
... /.emacs.el13
emacs20以降では、~/.emacs.el が存在すれば、それが読まれ、存在しなければ、~/.emacs が読まれる。

next up previous
: 3 cannaによる日本語入力のカスタマイズ法(基本編) : cannaによる日本語入力 : 1 UNIXでの日本語入力の仕組み