親指シフト系配列+漢字直接入力をお手軽に試すためのTips。

(2005年11月12日23:09:39追記: WantThemSelves=1 を、 WantThemselves=1 に修正しました。)


(言及: 繭姫13004-255/蒼星とTUT-CODE)
(参考: 書きかけの資料暫定公開)
(参考: スペースキー+文字キー=制御キー?)
(参考: 親指シフト系配列+漢直混合配列用のシフトインに関するメモ。)
(参考: (漢直・速記系対応として)とりあえず飛鳥21-290の定義を StrokeMode=2 対応にしてみる。)
(参考: お次は漢直…ができないので、SandSによる文字入力テストを。)

 繭姫による「親指シフト+漢直」の件、あくまでも途中経過ではありますが、ひとまず回答させていただきます。


 まず、おまじないとして「親指シフト系かな配列」側の定義を調整する必要があります。
 まずは冒頭部付近に、太文字部を追記してください。

TypeModeDefault=8
MultiDownHold=LR
'WantThemselves=1
'↑は、かな定義行末かつ漢字定義冒頭に転記する。
SemiShift=$
StrokeMode=2

 WantThemselves=1 は、漢直用に「漢字で表現された制御文字を無効にする」おまじないです。
 シングルクォートでコメントアウトしているとおり、この定義はかな配列定義の後で、なおかつ漢字定義の前に置く(かな定義→WantThemselves=1→漢字定義の順に定義を書く)様にしてください。この行で有効にしてはダメですので、その点にはご注意を。


 SemiShift=$ は、$が半角空白を表現する文字であるため「セミシフト(SandS)としてスペースキーを使用する」という意味です。
 なぜか同時打鍵になってしまうっぽいのですが、その辺はよくわからないので放置中です。


 StrokeMode=2 は新設されたモードで、「通常は1キーずつでしか実現できない【逐次打鍵】操作のうち、任意の箇所を【2キーの同時打鍵】で表現できる」というトリッキーな機能を実現できます。
 たとえばローマ字入力などで、従来は「S」→「Y」→「A」など単独で打鍵するしかなかったものを、「シフト+S」→「Y」→「シフト+A」などと2キーの同時打鍵含みでのストロークを定義できます。


 次に、親指シフトで使用しているシフト面指定をStrokeMode=2」に対応するよう書き換えます
 元々はこういう書式です(要変更部分のみを抜き出し)。

'逆=対手親指同時打鍵
=R *
=L +

'裏=同手親指同時打鍵
=L +
=R *

'小指シフト入力。
=H

 これを、次のように書き換えます。

'逆=対手親指同時打鍵
={R} *
={L} +

'裏=同手親指同時打鍵
={L} +
={R} *

'小指シフト入力。
={H}

 要は「シフト指定文字を中括弧で挟むだけ」でOK。


 漢直定義に関しては、ここまで編集した定義の後に WantThemselves=1 を書いて、更にその下にコピペします。
 ただし、そのままコピペすると定義がぶつかりますので、少なくともコピペ後の漢直定義に関しては、先頭一打鍵目(できれば全打鍵)を「スペースキー(など)との同時打鍵」として定義し直す必要があります
 #つまり、漢直部分を何らかのシフトで浮かせてやるというわけですな。


 で、実際のストローク定義方法はこんな感じ。

'SandS経由の3打鍵目連続シフトテスト。
={ d}{ s}
{ a}{ s}{ d}{ f}{ g} きん$しん$うん$てん$ぎん

 ここでは「スペース+D」→「スペース+S」の後に続いて「{ a}{ s}{ d}{ f}{ g}」(スペース+該当キー)を打鍵した場合に、それぞれ「きん$しん$うん$てん$ぎん」を出力する…という仕掛けになっています。
 もちろん中括弧で囲まず単独で「asdfg」とでも書けば、三打目はスペースシフトではなく単打での指定となりますし、これは「={ d}{ s}」の行についても同じことが言えます。

 ちなみに、「=」で始まる行の最後端に書く中括弧に限り、中括弧の中を一文字だけにすることができます。
 同時打鍵なのに一文字?という疑問がわきますが、その場合は(再び「=」で始まる行が出る直前までの)全ての行に、この中括弧でくくった文字との同時打鍵が定義されます。
 つまり、上記の例で書いた定義は、以下の定義と等価になります。


'SandS経由の3打鍵目連続シフトテスト。
={ d}{ s}{ }
asdfg きん$しん$うん$てん$ぎん


 要は「同時打鍵するキー同士を中括弧で囲めばOK」というわけです。
 あとは、姫踊子草の定義ファイルを弄ったことがある方ならば、概ね編集方法は理解できるものと思われます。


 さあ、レッツ親指+漢直!
 #…って、私はこの記事群を書くだけでくたびれてしまいましたので(汗)、とっとと寝ることにします…。