ドイツ語やフィンランド語を勉強していると、いきなり各国語のメールで文通…なんて事はありませんけども、それでもやっぱりエディタでそれぞれの言語の特殊なアルファベットや記号を入力したい場合が出て来ます。例えばこのページを書く場合、ASCII文字 に加えてドイツ語の特殊な文字とフィンランド語の特殊な文字と日本語の文字が一つの同じファイルに混在する事になります。最近の Linux では文字コードがデフォルトで UTF-8 になっているので文字の混在自体には対応出来るので問題が無いのですが、キーボードから直接入力出来ない特殊な文字たちをどうやって入力すれば良いのでしょう?
ドイツ語の äÄ öÖ üÜ ß とフィンランド語の äÄ öÖ åÅ šŠ žŽ を入力したい!
ここにはぽちの普段使いのエディタ、Emacs で多言語入力を行う方法を、ドイツ語とフィンランド語を例にメモしておきます。言語環境は日本語、文字コードは UTF-8 になっているのが前提です。
Emacs での多言語入力を決定するのは、現在の入力方式 current-input-method の値です。例としてぽち環境の値を確認してみると、
C-h v current-input-method
current-input-method's value is "japanese-anthy-uim"
入力方式は uim を経由して anthy を利用する日本語入力方式の japanese-anthy-uim です。この値をセットするには
M-x set-input-method RET 入力方式
またはショートカットの
C-x RET C-\ 入力方式
とします。入力方式をセットするところで TABキーを押すと、現在どんな入力方式が選択出来るのかのリストが出ます。環境によっては選択可能な入力方式の種類や数が異なります。
Possible completions are: TeX arabic ascii-direct-uim ascii-elatin-uim ascii-latin-uim assamese-inscript assamese-itrans belarusian bengali-inscript bengali-itrans british bulgarian-bds bulgarian-phonetic catalan-prefix chinese-4corner chinese-array30 chinese-b5-quick chinese-b5-tsangchi chinese-ccdospy chinese-cns-quick chinese-cns-tsangchi chinese-ctlau chinese-ctlaub chinese-ecdict chinese-etzy chinese-punct chinese-punct-b5 chinese-py chinese-py-b5 chinese-py-punct chinese-py-punct-b5 chinese-qj chinese-qj-b5 chinese-sisheng chinese-sw chinese-tonepy chinese-tonepy-punct chinese-ziranma chinese-zozy croatian croatian-cc croatian-postfix croatian-prefix croatian-qwerty croatian-xy cyrillic-jcuken cyrillic-jis-russian cyrillic-macedonian cyrillic-serbian cyrillic-translit cyrillic-ukrainian cyrillic-yawerty czech czech-prog-1 czech-prog-2 czech-prog-3 czech-qwerty danish-keyboard danish-postfix devanagari-aiba devanagari-inscript devanagari-itrans devanagari-kyoto-harvard dutch english-dvorak esperanto-postfix esperanto-prefix ethiopic finnish-keyboard finnish-postfix french-alt-postfix french-azerty french-keyboard french-postfix french-prefix georgian german german-postfix german-prefix greek greek-babel greek-ibycus4 greek-jis greek-mizuochi greek-postfix gujarati-inscript gujarati-itrans hebrew icelandic-keyboard icelandic-postfix ipa ipa-kirshenbaum ipa-x-sampa irish-prefix italian-alt-postfix italian-keyboard italian-postfix japanese japanese-anthy-uim japanese-anthy-utf8-uim japanese-ascii japanese-hankaku-kana japanese-hiragana japanese-katakana japanese-zenkaku kannada-inscript kannada-itrans korean-hangul korean-hangul3 korean-hangul390 korean-hangul3f korean-hanja korean-hanja-jis korean-hanja3 korean-symbol lao lao-lrt latin-1-alt-postfix latin-1-postfix latin-1-prefix latin-2-alt-postfix latin-2-postfix latin-2-prefix latin-3-alt-postfix latin-3-postfix latin-3-prefix latin-4-alt-postfix latin-4-postfix latin-5-alt-postfix latin-5-postfix latin-8-prefix latin-9-prefix latin-alt-postfix latin-postfix latin-prefix latvian-keyboard lithuanian-keyboard lithuanian-numeric malayalam-inscript malayalam-itrans norwegian-keyboard norwegian-postfix oriya-inscript oriya-itrans polish-slash portuguese-prefix punjabi-inscript punjabi-itrans rfc1345 romanian-alt-prefix romanian-prefix russian-computer russian-typewriter scandinavian-postfix sgml slovak slovak-prog-1 slovak-prog-2 slovak-prog-3 slovenian spanish-keyboard spanish-postfix spanish-prefix swedish-keyboard swedish-postfix tamil-inscript tamil-itrans telugu-inscript telugu-itrans thai-kesmanee thai-pattachote tibetan-tibkey tibetan-wylie turkish-alt-postfix turkish-postfix ucs ukrainian-computer vietnamese-telex vietnamese-viqr welsh
好きな入力方式を選んでセットしましょう。
C-\
で現在選択している入力方式と直接入力の切り替えが出来、
M-x quail-help
で現在選択している入力方式の使い方が表示されます。元の入力方式に戻す場合には、変更した時と同じように元の入力方式(例の場合は japanese-anthy-uim) を選び直しましょう。
入力方式に german-postfix を選んでドイツ語を入力してみましょう。
C-x RET C-\ german-postfix
german-postfix が有効になっていると次のように変換する事が出来ます。
ae -> ä AE -> Ä aee -> ae AEE -> AE oe -> ö OE -> Ö oee -> oe OEE -> OE ue -> ü UE -> Ü uee -> ue UEE -> UE sz -> ß szz -> sz
入力方式に finnish-postfix を選んでフィンランド語を入力してみましょう。
C-x RET C-\ finnish-postfix
finnish-postfix が有効になっていると次のように変換する事が出来ます。
ae -> ä AE -> Ä aee -> ae AEE -> AE oe -> ö OE -> Ö oee -> oe OEE -> OE
ほとんどの場合はこれで間に合うのですけれども、このままでは外来語や外来語由来の地名に使われる文字、åÅ šŠ žŽ が入力出来ません。そこで、finnish-postfix ではなく latin-9-prefix を使ってみます。これはヨーロッパで主流の文字コード Latin-1 (ISO-8859-1) の改定版である Latin-9 (ISO-8859-15) の特殊な文字を入力する為の入力方式です。
C-x RET C-\ latin-9-prefix
latin-9-prefix が有効になっていると次のように変換する事が出来ます。
"a -> ä "A -> Ä "o -> ö "O -> Ö /a -> å /A -> Å ~s -> š ~S -> Š ~z -> ž ~Z -> Ž
これ以外にも latin-9-prefix で入力出来る文字や記号はたくさんあり、エストニア語とかもカバー出来ます。詳しくは M-x quail-help してみて下さい。
注意!:同じ一つのファイルに日本語と各国の特殊な文字が混在する場合は、必ず Unicode で保存しましょう。具体的には UTF-8 で保存するのをお勧めします。
Webブラウザの検索ウィンドウや Webサイトの入力フォームなどの Emacs 以外のアプリケーションでこうした特殊な文字を入力したい事もあるかもしれません。入力方式のフレームワークに uim を使っているのなら、
$ sudo apt-get install uim-latin
した後に UimElatin - uim-doc-ja - Project Hosting on Google Code を参考にして設定してみましょう。
動作確認環境 : Emacs23 on Debian GNU/Linux 6.0 squeeze