錬金術師の実験室ようこそ、錬金術師の実験室へ。ここには、得体のしれない入力方式の材料がごろごろころがっています。トラックバック(0)そもそも何故?まず、何故こんな手の込んだことをやるのかについて、ざっと説明します。15年ほど前から、私はDvorak配列を使っています。それ以前から、日本語の入力には漢直を使っていたので、Qwerty配列からDvorak配列への乗り換えは簡単でした。漢直の設定をIMEのローマ字テーブルに入れる(*1)という方法なので、その漢直用のテーブルのローマ字部分をQwertyからDvorakに置換するだけで済みました。英字配列を変えても日本語の入力方法に影響しなかったわけです。「JIS仮名+漢直」と「親指シフト+漢直」の違い今年の夏、急に、仮名入力に漢直を混ぜる方法を思いついてしまいました。漢直のストロークをローマ字入力モードで渡すのではなく、仮名入力モードで(仮名文字列として)渡してしまおうというわけです。実際にやってみると、JIS仮名配列ではうまくいきましたが、親指シフトの場合は「。」と「.」が区別できずに(*2)行き詰まりました。漢直のストロークとして扱うためには、どうしても「。」と「.」は区別できなくてはなりません。これまでずっと、ローマ字入力モードの漢直では何の問題もなく「。」と「.」を区別できていたので、このやり方ならうまくいくはずです。親指シフトをローマ字テーブルで入力するそこで、「。」や「.」のキーを(アルファベットとして)ローマ字入力モードのIMEに渡して、ローマ字テーブルで「。」や「.」に変換するようにしました。部分的にローマ字入力モードにはできないので、当然、他の仮名や記号等も全部ローマ字テーブルで設定することになります。ローマ字テーブルで漢直のストロークを設定するのと同じように、仮名の“よみ”とは無関係に、キーの位置とシフト状態を示す中間コードとして扱うことにするわけです。以下は、そのために作ったDvorakJ用の設定内容(*)です。*/-henkan[ó1|ó2|ó3|ó4|ó5|ó6|ó7|ó8|ó9|ó0|ó{-}|ó{^}|ó{\}|óq|ów|óe|ór|ót|óy|óu|ói|óo|óp|ó{@}|ó{[}|óa|ós|ód|óf|óg|óh|ój|ók|ól|ó;|ó{:}|ó{]}|óz|óx|óc|óv|ób|ón|óm|ó,|ó.|ó/|óô{\}|{変換}|]〔オプションの部分は省略します〕このように、敢えてDvorakJでは実際に入力する文字を指定してません。その代わりに、論理的な打鍵情報を中間コード化することに徹しています。文字キーの中間コードに関しては(独自の符号を用いると煩雑になるので)Qwerty配列の文字をそのまま使っています。Dvorak配列バージョンを作っても構いません。以下のように、Google日本語入力のローマ字テーブルの「入力」欄に中間コードを入れ、「出力」欄には目的の文字を入れます。}どの打鍵でも、通常のローマ字入力の「あ」「い」「う」「え」「お」と同じように即座に仮名が入力されるので、ローマ字入力を使っている感じはしないと思います。(目を凝らしてよく見れば、何かが一瞬表示されていることは分かりますが、入力の邪魔になるほどではありません)各種キー配列への対応ここまでは親指シフト(NICOLA-J)を例にして説明しましたが、各種配列用の入力ローマ字テーブルを作ることによって、TRONなどの1打鍵系の仮名配列(*5)に対応できます。JISや新JISを親指でシフトできるようにするなどの応用も可能です。この続きは?16日の「親指シフトに漢直をじわじわ混ぜていく方法」に詳しく書く予定です。2015のために書いたものです。詳しくは、先日の「仮名漢|漢直」問題を御覧ください。親指シフトの場合は「。日本語の文章を入力する場合は「。」か「.」のどちらか片方を使うのが普通なので、IMEの方でどちらにするかを選べるようになっています。その処理のせいで片方しか入力できないのだろうと思われます。JIS仮名配列の場合は、漢直のストロークに句読点などの記号が入らないため、このような問題が生じなかったのです。親指キーの組み合わせは、{無変換}と{変換}のほかに、{無変換}と{空白}、{空白}と{変換}の2種類があります。どの組み合わせでも、IMEは同じ中間コードを受け取るようになっています。日本語入力コンソーシアムを参考にして、文字キーを[BS]に用いない「NICOLA-J型」を選びました。配列図にならって、未定義の部分を「●」としています。漢字のストロークを単独打鍵の文字の組み合わせで確実に判定できるものであれば、どのような配列でも問題ありません。TRONキーボードには左右の親指を同時に押した状態で入力する文字があるので、「両親指との同時打鍵」をオプションとして追加できるようにしました。00:00に書いたブログ記事です。ひとつ前のブログ記事は「漢直用ローマ字をQwertyからDvorakに変換する小技」です。次のブログ記事は「親指シフトに漢直をじわじわ混ぜていく方法」です。最近の記事はメインページで、過去の記事はアーカイブで閲覧できます。このブログを購読このブログはクリエイティブ・コモンズでライセンスされています。Proこのブログはクリエイティブ・コモンズでライセンスされています。