人生リアルタイムアタック

当面はPython学習帳

DvorakJP用のGoogle 日本語入力ローマ字テーブルをつくった

DvorakJP用のGoogle 日本語入力ローマ字テーブルをつくりました

github.com

El Capitanになったし、Dvorakが最近ちょっと盛り上がってたので、この際新規に作成しました。
ライブ変換は現状難しそう*1 な為、Google 日本語入力のローマ字テーブルだけの作成になります。

基本的にGoogle 日本語入力は記号系のみ一部改変、DvorakJP 1.0とは完全互換のつもりですが、追加を行っているのでローマ字テーブル名称をDvorakJP RXとしています。

Dvorak配列

そもそもDvorak配列ってなんなの?と思う人も居ると思うので簡単に説明すると、Dvorak配列は日常殆どの人が使っているであろうQWERTY配列とは異なる配列です。以下の特徴を持った配列になります。

  • 母音(a, o, u, e, i)をすべて左手中段ホームポジションに配置
  • アルファベットの利用頻度の高いもの程移動距離が短くなるよう配置
  • 記号その他はQWERTYと同配置

物理的なキー配置には変更が無いため、OSXLinuxではOSの設定変更のみで使うことができます。Windowsも専用ソフトウェアが幾つか配布されており、それらをインストールすることで使うことができます。

例えば、OSXの場合はシステム環境設定 > キーボードからDvorakを追加するだけです。 QWERTYとの併用も可能なので、慣れないうち or 両方使う為にQWERTYも併用するのもアリです。

f:id:ShineSpark:20151017145757p:plain

もしくは、Kinesisキーボードのようにハードウェア上で切り替え可能なキーボードを利用すれば、どのPCでもUSBを挿すだけでDvorak配列として利用可能です。ただし、Kinesis自体がUS配列前提になっているので、JS配列設定になっていると全/半キーなどを見直す必要があります。
今調べてみたらKinesisキーボード円安の影響でかなり値上がりしてますね。。。

まぁKarabinerとか、Vim/Emacsとか、dotfilesとか、大抵他の人のPCが使えないほど変更してると思うのでソフトウェア上の切り替えで充分な気がします。

ちなみにog:imageの音楽で有名なドヴォルザークとはスペルが一緒*2なアメリカの教育心理学者のドヴォラック博士によって考案されました。人間工学の専門ではない博士によって考案されたことから、本当に効率がよいか伺わしいとよく突っ込まれます。

DvorakJP

Dvorak配列はアルファベットの入力には適しているのですが、左手にすべての母音が集まっていることから、母音が連続で続いたり、一部の子音が左手にあったり、拗音入力に利用されるyも左手側に配置されていると一部入力し難いケースが発生してしまいます。 Dvorakの配列そのままに、IMEのローマ字テーブルを一部変更することで日本語もより入力しやすいようにされたものがDvorakJPです。
なので精確にはDvorakJPは配列ではなく「ローマ字テーブル」になります。

また、二重母音拡張と呼ばれる母音の連続打鍵を減らす仕組みと、拗音拡張と呼ばれる拗音を右手でも入力可能にする仕組みがあります。これらを組み合わせて利用することで、アルファベットも日本語も効率よく入力可能にしています。

詳細は本家サイトに打鍵回数の統計も含めて掲載されています。 DvorakJP

作成したDvorakJP用ローマ字テーブルの解説。

今回作成したローマ字テーブルは、Google 日本語入力用デフォルトのローマ字テーブルをベースに、DvorakJPのマッピングを行ったローマ字テーブルになります。

Google 日本語入力のデフォルトローマ字テーブル(2015-10-11現在)の特徴

通常のローマ字テーブルに加えて以下の特徴があります。

  1. z*キーによる記号入力
    • zh: , zj: などの記号入力が可能
  2. 訓令式以外のローマ字テーブル
    • f*, ch*, ts*などの一般的なヘボン式ローマ字テーブルの追加
    • kya: きゃなどのyを利用した拗音の他に、twa: とぁなどのw拗音の追加
  3. t'u: とぅなどの'を利用した拗音が追加
    • ただし、分かりづらい上にtwu: とぅなど、他の入力でも代替可能な拗音もあり、利用価値が不明

デフォルトローマ字テーブルはこちら: romantable_original.txt

今回作成したDvorakJP RX(dvorakjp_rx.txt)の特徴

DvorakJP 0.2β時にオミットされた拡張があるのですが、Google 日本語入力では問題が発生しない為、一部機能の復活を行っています。 また、DvorakJPでは恐らく考慮されていなかったであろう tw* などの拗音がGoogle 日本語入力には含まれているので、これらも二重母音拡張を行っています。 その為、元々Google 日本語入力をディープに使っていた方も、従来からDvorakJPを使っていた方も問題なく利用することが可能です(たぶん)。

Google 日本語入力とDvorakJPのローマ字テーブルのマージにあたって、以下の一部変更を行っています。

  1. Google 日本語入力の z*キーによる記号の入力を、;*に変更
    • ざ行の入力と競合する為、Qwerty時のzのキーに位置する;に置換
  2. Google 日本語入力の ch*, tw* などにも二重母音拡張を追加
    • 元のローマ字テーブルに4種の拗音がある為、t*のテーブルは若干多め
      • tya: ちゃ, tha: てゃ, tsa: つぁ, twa:とぁ, tna: ちゃ, etc.
  3. Google 日本語入力の t'u: とぅなどの'を利用した拗音入力の削除
    • これだけは理解しづらいと判断して削除しました。入力の際はtwo: とぅなどを利用推奨
  4. DvorakJPのkによるか行の二重母音拡張と拗音拡張の有効可
    • DvorakJP ではか行の入力をcだけに限定しているようですが、kでも入力可能にし、コンビネーションキーを利用した二重母音拡張と拗音拡張が利用可能
  5. DvorakJP 0.2β時のpキーに二重母音拡張uuを復活

従来公開されていたものは、古いGoogle 日本語入力のローマ字テーブルをベースの為か、幾つかのマッピングが抜けており、拗音 + 二重母音拡張の組み合わせがあったりなかったりしたので、それらも網羅したローマ字テーブルになります。

作成ルールとして、

  • Google 日本語入力のローマ字テーブルをベースとする
  • 拗音拡張と二重母音拡張を追加していく
  • 拡張が、元々Google 日本語入力に登録されているマッピングと重複した場合には、Google 日本語入力を優先する
    • shi: しぃ でなく、ヘボン式に倣いのまま。その為二重母音拡張はベースとなる。

としている為、通常のGoogle 日本語入力からの移行が容易です。

元々のGoogle 日本語入力のromantable.txtは312行で、DvorakJP対応のローマ字テーブルは600行強程度のものがありました。今回作成したローマ字テーブルは、最新のGoogle 日本語入力のローマ字テーブルをベースにDvorakJPのルールに従ってすべての拡張を網羅したもので、987行になります。(diffを見たところではl'とかpy'などの、小文字 + 二重母音拡張や、拗音 + 二重母音拡張が時々抜けていた部分が増えたようです。)
これらの補完をするかどうか若干悩みましたが、置換や単語途中での入力でも二重母音拡張が出来る方が一貫したルールに則って入力できると判断し、すべて追加しております。

ボリュームは増えているのですが入力時に引っかかるようなは速度上の問題は一切ありません。 *3

具体的な変更点はGithubのREADMEにも記載しています。
shinespark/dvorakjp-romantable · GitHub

まとめ

DvorakJP及びDvorakJP RXは通常のDvorak配列のローマ字テーブルとしてもそのままご利用いただけます。Dvorak配列を使っている方で気になる方は、ぜひ試しにimportしてみてください。

*1: MacOSX - El Capitan の日本語入力で DvorakJP - Qiita

*2:英語読みがドヴォラックらしい。

*3:MacBook Pro Retina, 13-inch, Early 2015, 2.7 GHz Intel Core i5, 8 GB 1867 MHz DDR3, OS X 10.11 El Capitan