top page > L'Internationale > here

入力環境の別の選択肢


概要

外国語の文字の入力法ですが,キーボードの設定を変更する以外の選択肢もあります. 私の知る範囲ですが,ここで紹介します.

なお,目的に「書籍とか Web で見つけ難かった情報」と書きましたが,このページは例外です.


目次

1. xvkbd
1.1 FreeBSD における導入
1.2 使用法の概略
1.3 ロシア語対応
2. quail
3. m17n-lib

1. xvkbd

X Window System 上ならば仮想キーボード xvkbd があります. 外国語の文字を入力する場合,キートップの「刻印」が「入力される文字そのもの」に変化してくれるのが魅力です.

これは FreeBSD の ports/packages にもなっています. (ports/x11/xvkbd) ports に採用された version ですが,2.6 から一気に 3.0 になりました. 例えば FreeBSD 6.2 では 2.6,FreeBSD 7.2 では 3.0 です.

以下の話は version 2.6 までに関してです. 3.0 では変更,または不要になった内容が多いので御注意下さい.

1.1  FreeBSD における導入

xvkbd を導入する際に注意しなければならないのは,FreeBSD の側により選択されているオプション,特に XTEST の状態です. /usr/ports/x11/xvkbd/Makefile を見て

OPTIONS=        XAW3D   "Xaw3d support" off \
                XTEST   "XTEST extensions support" on \
                I18N    "internationalization" on

となっていれば大丈夫です. (用途にもよるでしょうが,XTEST が off だと使い難いです.)

古い FreeBSD (例えば 4.9) では,そもそもこの三行が存在しません. そのような環境では XTEST は (ついでに言えばこの三つすべてが) off の状態で make されているので,次のようにして make し直します.

# make -DWITH_XTEST

XAW3DI18N も含めて make し直すならば,次のようにします.

# make -DWITH_ALL

一方,比較的新しい FreeBSD (例えば 6.2) では,この三行があります. ここで XTEST が on になっていれば,そのまま使えます. さらに XAW3D も on にしたければ make し直します. こちらの場合は

# make

とすると,この三つのオプションをどうするかを選択するメニューが現われます. default が on になっている項目は [X] の印が付いています. 選択を終えれば,make が続行されます.

無事に make が終わったら,導入します.

# make install

もう一つ注意しなければならないのは,ports/packages になっているとはいえ,FreeBSD の環境にて入念に整備されているわけではないことです. 前述の XTEST がずっと off になっていたとか,ports に採用している version が少し古いとか,そういう点からの感想ですが. それと例えば,ギリシア語のキーボードを選択すると,「フォントがない」というエラーになります. (私もそうですが,単にギリシア語の入力を必要としている人がいないだけかもしれません.) この件の patch は 1.3 節の終りにて配布しています.

1.2  使用法の概略

使用法の詳細や resource の情報は man page にあります.

% man xvkbd

以下に使用法を簡単に書きます.

(1) 起動.
  たいていは background で実行します.

% xvkbd &

キーボードの window が描かれますので,それを入力をしたい terminal と重ならないところに配置します.

(2) terminal の選択
  その英数キーまたは Key Pad の右上の [Focus] と書かれたボタンを左マウスでクリックします. マウス・カーソルの形が矢印から十文字に変わったら,カーソルを入力をしたい terminal の上に動かして,左マウスでクリックします. [Focus] の文字の色が黒から緑に変わります.

これを取り消すには,[Focus] をもう一度クリックします. 文字の色が黒に戻ります.

(3) 入力
  xvkbd の window に描かれたキーを左マウスでクリックすると,その文字が terminal に入力されます. 右マウスでクリックすると,[Shift] を押した状態の文字が入力されます.

(4) 修飾キーの利用
  [CAPS Lock] は通常のキーボードと同じ動作をします. [Shift], [Control], [Alt], [Meta], [AltGr] (Japanese の場合は [かな]) は,通常のキーボードと異なり,先ずこれをクリックし,次に文字をクリックします. (通常のキーボードのように同時に複数のキーをクリックできないので,このような操作法になります. 修飾キーのこのような挙動は Latch と呼ばれます.)

(5) 修飾キーの挙動を Latch から Lock に変える
  window の左下の "xvkbd" と少し斜めに描かれたキーを左右いずれかのマウスでクリックすると,Menu が現われます. この中に "Lock Shift?", "Lock AltGr?" 等があります. マウスのボタンを押したまま Menu の上を引きずり,目的の箇所でボタンを放すことにより,そこが選択されチェックの印が付きます.

(6) 外国語の文字の入力
  前述の Menu から "Change Keyboard Layout" を選択すると,"xvkbd - layout" という新たな window が現われます. どれかの言語のボタンを左マウスでクリックして選択します. [Focus] は解消されてしまうので,再度やり直します.
当然ですが,terminal の側がその文字を表示できる状態になければなりません.

例えばドイツ語の入力のためは,LANG*.ISO8859-1 ではない環境にて xterm を立ち上げるならば,次のように起動しなければなりません.

% env LANG=de_DE.ISO8859-1 xterm -fn -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1 &

(7) 終了.
  前述の Menu の一番下が "Quit" です.

なお,Menu により XTEST を off にすることができます. これにより,文書類からは読み取り難い動作の差異を実感できます.

1.3  ロシア語対応

xvkbd-2.6 の時点ではロシア語に対応していません.[1] 私がロシア語のデータだけは作成致しましたので,これを他の言語のデータとすり替えるという形での使い方はできます. 当然,xvkbd のメニューは変更されませんので,すり替えた先の言語を選択することになります.

xvkbd のデータは /usr/X11R6/lib/X11/app-defaults/ に置かれています. この節の終りにて配布する XVkbd-russian をここに cp して,例えばギリシア語の XVkbd-greek と次のようにして入れ替えます.

# cp xvkbd.tgz を解凍したところ/XVkbd-russian .
# mv XVkbd-greek XVkbd-greek.org
# ln -s XVkbd-russian XVkbd-greek

これで,Menu の "Change Keyboard Layout" → "xvkbd - layout" にて Greek を選べば良いです. 最初の状態は英語用のキーボードですが,[AltGr] をクリックすればロシア語の文字が入力できる状態になります.
なお,英語の文字がアルファベットでないところに配置されたロシア語の文字には [CAPS Lock] が効かないのでご注意下さい. (7 箇所あります.) [Shift] は効きます.

ロシア語の入力のために,もしも LANGru_RU.KOI8-R ではない環境にて xterm を立ち上げるならば,次のように起動しなければなりません. (フォントは koi8-r でさえあれば別のものでかまいません.)

% env LANG=ru_RU.KOI8-R xterm -fn -misc-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r &

もちろん,LANGru_RU.ISO8859-5 でも良いです. その際にはフォントもそれに合わせて選んで下さい.

ちなみに,xterm の起動後にそこで次のように変更してもだめでした. このようにして変えられるのは shell の環境変数であって,xterm のそれではないということでしょう.

% unsetenv LANG
% setenv LANG ru_RU.KOI8-R
% setenv LC_ALL ru_RU.KOI8-R

ロシア語用のデータと,ギリシア語用のデータの patch はこの中にあります. → xvkbd.tgz

[1] ロシア語は version 2.8 (2008.3.30) から標準で使えるようになっています. (ports の xvkbd ならば 3.0 以降です.)

2. quail

mule(x)emacs では,quail が利用できるようです.[2] 私はこれを使った経験がありません. 今後使う機会があれば,ここに反映させます.

[2]「プロフェショナル BSD」砂原 秀樹 等,p.270 (アスキー) (1997)

3. m17n-lib

同じく X Window System にて,m17n-lib があります.[3] 私はこれを使った経験がありません. 今後使う機会があれば,ここに反映させます.

こちらも FreeBSD の ports/packages にもなっています. (ports/devel/m17n-lib の他にも m17n-docs, m17n-db があります. これらが何なのか,分かりません.)

[3]「m17n-lib 概説」外村 哲 等,Software Design (2007.3) pp.58-61 (技術評論社)