配列定義ファイル内の個別定義

前節までの各種指定が完了したら、残りは具体的な入力法の定義になります。

初期の姫踊子草は、逐次打鍵のない入力法だけを定義できました。

そのため逐次打鍵がある入力法の定義も、ない入力法の定義に関する知識が前提となっています。

なお別のページにキー表現とキーの対応表(キー類表現一覧)を用意しております。

逐次打鍵のない配列/入力法の場合

単一の定義方法

定義の各行は、水平タブ(U+0009)を挟んでファイル先頭側に入力、反対側に出力を記述します。

これにより姫踊子草は、指定の入力に対応した出力を行います。

水平タブ自体は複数連ねて構いませんが、その他の空白類文字は入出力の区切りに使えません。

' a を入力すると「い」が出力されます。
' a と「い」の間の空白は、TAB キーによる水平タブ符号で作ってください。
a    い

出力側には複数の文字を連ねることができます。

' a を入力すると「いしき」が出力されます。
a    いしき

一行にまとめる

この要領で行の数だけ入出力の対応付けができますが

a    い
s    はし
d    けだま
f    と
g    そと

これを一行にまとめることもできます。

asdfg    い$はし$けだま$と$そと

一行にまとめるとき、入力側は単純に連ねるだけですが、出力側は $ 記号で分割します。

入出力ともに余分な空白をいれてはいけません。

同時押下入力に対する定義

入力側に同時押下を指定するときは、波括弧 { } (U+007B, U+007D) で括ります。

どういう種類の同時押下なのかは、前述の SemiShiftMultiDownHold の指定などで決まります。シフトキーは常に Classic 扱いなので先押しが前提となります。

' a だけなら「い」、シフトキーを押しながらだと「さと」を出力します。
a    い
{Ha}    さと
' d と f を同時打鍵で入力すると「っ」を出力します。
{df}    っ

この例における中括弧は一単位の入力とみなしますので、上の三つを一行にまとめると次のようになります。

a{Ha}{df}    い$さと$っ

同時押下の片方をまとめる

たとえばシフトキーを活用して入力する場合、次のような形になりますが

{Ha}{Hs}{Hd}{Hf}{Hg}     どん$ごん$ぎん$ざん$だん
{Hz}{Hx}{Hc}{Hv}{Hb}     かい$さい$たい$ない$はい

シフトキーを表す H を事前に指定することができます。

' 行頭に半角等号を置き、直後にまとめたいキーである
' シフトキーを意味する H を置く。
=H
asdfg    どん$ごん$ぎん$ざん$だん
zxcvb    かい$さい$たい$ない$はい

もちろんこの手法はシフトキー(H)以外のものでも使えます。

この方法によるまとめ機能は、= の直後にどのキーも指定しないことで解除されます。

=H
asdfg    どん$ごん$ぎん$ざん$だん
zxcvb    かい$さい$たい$ない$はい
=
hjkl;    あ$い$う$え$お
' 上記の hjkl; は単独打鍵の定義となる。 =H の指定は解除されている。

逐次打鍵がある配列/入力法の場合

逐次打鍵の定義方法は大きく分けて二つ、細かく分けて三つあります。入力法にもよりますが、適宜組み合わせて使うのが良いでしょう。

  • 毎回逐次打鍵の頭から定義していく方法
    • 途中をまとめて省略する前提の記述方法があります(StrokeMode=2)
    • 同時押下がなければ、波括弧内に打鍵順に記述する方法があります(StrokeMode=1)
  • 逐次打鍵の途中まで操作した時点で他の操作に振り替える方法があります。
    • 振替先を全角文字で記載して、振替先専用にすることの方が多いです。
    • 出力の先頭または途中に Fy を置いて直後に振替先を記述します。
    • 携帯電話のように出力を巡回するようなものはこの方法でしか定義できません。
    • ローマ字入力でも子音連打の「っ」などはこの方法でしか定義できません。

逐次打鍵は最後以外をまとめる

逐次打鍵がある場合、例えばローマ字入力のようなものの場合は別の方法を使う必要があります。

' StrokeMode の指定効果は、次に StrokeMode を再指定するまで持続します。
StrokeMode=2

StrokeMode=2 では、最後の一打鍵をこれまでの方法で定義します。

最後の一打鍵を除くそこまでの逐次入力は、行頭 = による定義を拡張して指定します。

StrokeMode=2
' sya, syi, syu, sye, syo という逐次打鍵入力が
' それぞれ「しゃ」「しぃ」「しゅ」「しぇ」「しょ」という出力になる。
=sy
aiueo    しゃ$しぃ$しゅ$しぇ$しょ
=ch
aiueo    ちゃ$ち$ちゅ$ちぇ$ちょ
' StrokeMode の効果は持続するので、上記の cha, chi, chu, che, cho も有効。

行頭 = の後に複数のキーが指定されているところがこれまでとの違いです。

同時押下が絡む逐次打鍵

同時打鍵が関係する逐次打鍵は、ここまでの知識の応用でできます。

ただし同時打鍵の略記は、行頭 = の最後の部分にだけ指定可能で、 その方法もここまで説明したものとは異なる形になります。

次のようなものを実現したい場合:

=jp
{La}{Lg}{Lf}{Ld}{Ls}     ふぁー$ふぃー$ふー$ふぇー$ふぉー

次のように省略できます。

=jp{L}
agfds     ふぁー$ふぃー$ふー$ふぇー$ふぉー

最後の打鍵が三つ以上の同時押下になり、かつ、省略したいものがそのうち二つ以上の場合は行頭 = の末尾で中括弧を二重に記述してください。

次のようなものを実現したい場合:

=xl
{Hkz}{Hkx}{Hkc}{Hkv}{Hkb}      かかっ$ささっ$たたっ$ななっ$ははっ

次のように記述できます。

=xl{{Hk}}
zxcvb    かかっ$ささっ$たたっ$ななっ$ははっ

上記の例で中括弧を二重にしなかった場合は、x, l, {Hk} の三つの逐次打鍵に続く合計四つの逐次打鍵になります。

注釈

同時押下は三つ以上を指定できますが、同時打鍵は二つまでです。

上記の例では zxcvb のいずれかと k で二つキーによるの同時打鍵、H は同時押下で先行押下が前提なので組み合わせが成立します。

通常文字キーを三つ以上同時押下するような使い方は、一般的なキーボードでは考えられていない場合が多いのでご注意ください。

1.7万円あたりからある「Nキーロールオーバー」と称したキーボードであればそこそこ対応できます。

StrokeMode=1 の利用

逐次打鍵配列にはもう一つ、別の定義方法があります。

StrokeMode=1
StrokeMode=1 では、入力・水平タブ・出力の形の行における { } の意味が変化します。

{ } の中身は同時打鍵ではなく、その順番の逐次打鍵を意味します。

' 入出力対応記述の入力側で { } の意味が変える。
StrokeMode=1
' q, a という逐次打鍵で「くぁ」を出力する。
{qa}    くぁ
' z, h, a で「じゃ」、 z, h, u で「じゅ」になる。
{zha}{zhu}     じゃ$じゅ

行頭 = による省略の使い方は StrokeMode=2 の場合とほぼ同じです。

ただし同時打鍵の部分略記が有効な間は、入出力定義行で { } を使えなくなります。

注釈

StrokeMode=1 は、元は同時押下がない逐次打鍵配列のための記述方法でした。

行頭 = の指定が StrokeMode=2 と同様に拡張された結果として、StrokeMode=1 でも同時押下のある逐次打鍵が指定できるようになりました。

StrokeModeの初期化

あまり使うことはないでしょうが StrokeMode=12 に設定した後で初期状態に戻すには 0 を指定します。

StrokeMode=0
' 以後、StrokeModeの再指定まで逐次打鍵の定義はできなくなります。

子音連打による「っ」の定義方法

ローマ字を応用した入力法の場合、同じキーを連打したらその分だけ促音「っ」を出力させる動作が求められます。

そのような挙動は出力側に Fy を使うことで定義できます。子音そのものは個別に維持する必要があるでしょうから、子音の数だけ同様の定義が必要となります。

StrokeMode=2
=k
aiueok     か$き$く$け$こ$っFyk
StrokeMode=1
=
{tt}{ss}{dd}     っFyt$っFys$っFyd

上記促音の例では、再度子音単体の待ち状態になりますが、 Fyの後ろにひらがなや漢字を置くなどしてわかりやすくすることもできます。

StrokeMode=2
=
g     が行
=が行
aiueogy     が$ぎ$ぐ$げ$ご$っFyが行$Fyぎゃ行
=ぎゃ行
aiueo       ぎゃ$ぎぃ$ぎゅ$ぎぇ$ぎょ

この例の場合、管理上は「が」「行」および「ぎ」「ゃ」「行」の(擬似)逐次打鍵が新たな入力側になっています。

Fy の後に続く文字やキー表現はその時の入力側と関連付ける必要はないので、携帯電話のような入力法も実現できるはずです。

補助鍵盤画像の表示制御

省略表現に用いられた行頭 = の記述方法には、もう一つ役割があります。

これまでに説明してきた部分の後に水平タブを追加し、その後に記述を加えると補助鍵盤画像の小さな案内文字として表示されます。

また、その記述が * で始まっていると、以後の入出力定義内容は各キーの左側シフト位置に表示されます。

同様に、+ で始まっていると右側シフトの位置に表示されます。

例えば、姫踊子草かな配列では * で親指キーとの同時打鍵内容を、 + で反対側の手の中指ホームポジションとの同時打鍵内容を表示させています。

* や + の指定がなければ左右の親指キーがそれぞれ左側シフト・右側シフトとして表示されます。

配列種別による出力記述の注意

『ヴ』以外はひらがなで記述します

かな文字配列ではひらがなを主に出力することになります。

出力記述には『ヴ』を除きひらがなを使ってください。

その他のカタカナや JIS 第三水準に追加されたひらがななども指定はできますが、 IME 側が対応できないことがあります。

英字記号の扱いには注意が必要です

出力側に H を活用して「シフトキーを押しながら○×キーを押す」という表現は可能ですが、確実に特定の記号を出したい場合は英字記号そのものを記述すべきです。

その英字記号が他の意味を持つ混乱を避けるため、全角英数で記述するほうが安全です。