1.問題の現象
(1)フレーズを半角英字で登録しているのに、全角未確定で出力される
例えばPhraseExpressで「fsq」と入力した際に「foursquare」と出力させたい場合に、ATOKの日本語入力がオンの状態で実行すると「foursquare」と全角未確定状態になります。フレーズ登録は半角で登録しているのにもかかわらず、です。
(2)F10キーの半角英数変換が効かない
さらに、ここで半角英数にするためにF10を押すと「フォースクエア」と半角カナになってしまう上、F10を押し続けても半角英数の「foursquare」にはなりません。
半角英数を出すためには、F10でなくスペースキー等での「変換」をする必要があり、F10キーでの操作に慣れている者にとっては、通常と異なる感覚を要求されるのでストレスです。
ちなみにF10キーでの処理は、おそらく「foursquare」を「再変換」か何かしているのだと思います。なぜならフレーズが一般的な単語かどうかでF10での挙動が異なるからです。twitterは「ツイッター」になりますが、PhraseExpressは「PhraseExpress」となります。
(3)日本語入力オフだとちゃんと半角で出力される
この現象ですが、日本語入力がオフの状態では発生しません。想定どおり半角で出力されます。
つまり、半角英数で出力したいフレーズは、発動直後に日本語入力をオフにしてやれば問題が回避できそうです。
2.対策:発動直後に日本語入力をオフにしてから文字出力、最後に日本語入力をオンに戻す
(1)概要
PhraseExpressでは、テキスト入力だけでなく、特殊なキーを押させることができます。
Open a web page from a phrase|Phrase Express Manual
↑リンク先の少し下の方にある"Adding special keys into a phrase"の項が重要です。
そこからさらに一部引用しますが、下記にリストアップされているキーはPhraseExpressで押させることができるキーです。
一方、ATOKでは、各種キーの動作をカスタマイズすることができます。
無変換キーと変換キーの活用を考える(ATOK for Windows) | 単純作業に心を込めて
ATOKで日本語入力のON・OFFを特定のキーに割り当てる方法。
上記のPhraseExpressで使えるspecial keysの中から、自分があまり使わないであろうキーを2個ピックアップし、それらに日本語入力オフ、日本語入力オンを割り当てます。
そして、PhraseExpressで半角英数を含むフレーズの最初と最後にそれらのキーを挿入してやる、というのがこの計画の全容です。
(2)ATOK側の設定
例えば、Ctrl+Shift+F3を日本語入力オフ、 Ctrl+Shift+F4を日本語入力オンに設定します。
できるだけ自分で使わないキー、自分がよく使うアプリケーションで利用されていないキーを選ぶことが重要です。
(3)PhraseExpress側の設定
次に、ATOKで設定した日本語入力のオン及びオフのキーを押させるフレーズを各1個登録します。
私はIMEOFF(上記の画像のとおり)、IMEON(上記の画像のIMEOFFをIMEON、F3をF4に置き換えたもの)と登録しました。
そして、問題のあるフレーズの英数字を下記のように挟みます。
これで、「fsq」と入力して半角の「foursquare」が入力されるようになりました。
3.設定するキーは試行錯誤が必要かも
(1)私の失敗例
現在はCtrl+Shift+F3及びF4で様子を見ているところですが、ここまでに既に2回失敗を経ています。
(失敗その1)
Ctrl+F11、F12を設定したところ、WindowsLiveWriterのショートカットにひっかかった。
→Ctrl+Shift+F3、F4に変更してみた。
(失敗その2)
Ctrl+Shift+F3、F4を設定したところ、やはりWindowsLiveWriterで変な挙動をした。
→PhraseExpress側のShiftとCtrlの順番を変えたら改善した。
私の環境では今のところこれで良さそうですが、使用しているアプリケーションに
よってはCtrl+Shift+F3及びF4では支障があるかもしれません。
その場合は、自分の環境に合ったキーを探してみてください。
(2)IMEOFF等をフレーズとして登録しておくと、キー変更が楽になる
上記の設定例では、IMEOFF及びIMEONをフレーズとして登録し、それらを各フレーズから参照する形にしています。
当初は各フレーズに直接"{#SHIFT {#CTRL {#F3}}}"のように記述していましたが、このやり方だとキーを変更したい場合には全フレーズに変更を適用しなければなりません。
設定するフレーズが3つ以上あるなら、紹介した事例のようにフレーズ登録しておいた方が良いと思います。
4.後書き
(1)この仕組みのデメリット
私がテキスト入力をする場面では、日本語入力がオンのことの方が多いです。
ですが、日本語入力オフで作業をする環境においては、上記の設定を含むフレーズが発動すると日本語入力がオンになってしまうので、不都合があるかもしれません。
フレーズによっては最後のIMEONを外すなど細かい調整が必要かもしれません。
(2)MS IMEでは発生しないのかも
ふと思い立ってMicrosoftのIMEでも同様の現象が発生するのか試してみたところ、この問題は発生しませんでした。
こんなことをしなくても済むように、ATOKがPhraseExpressと問題無く連携してくれるようになったら最高だな、と思います。
とはいえ私にとってはATOKもPhraseExpressも手放せないアプリケーションです。当面はこのやり方で、両立を実現したいと思います。
コメント