配列定義ファイル全体に効果がある指定

ここで紹介する各項目はファイル全体やその中の定義全体に関与するものです。ただし注釈文と空行は他に影響を与えません。

各々の指定は、行頭や = 記号の前後に余分な空白を入れないようにしてください。

たとえば MultiDownHold=LL= の間に空白を入れると、空白キーにも MultiDownHold の効果がかかってしまいます。

文字符号化法

  • Shift-JIS と UTF-8, 16, 32 が使えます1。改行は CR, LF, CRLF のどれでも構いません。
  • UTFを使う場合は Byte Order Mark を付けるようにしてください2
  • Unicode の基本多言語面以外の文字は代用対3で処理します。 何ら問題なく利用可能な場合とそうでない場合がありえます。

かな文字配列に必須の一行目

記述例:

visible=1

かな文字配列ファイルでは、先頭行(の先頭部分)を前記のとおりに記述してください。 これは過去に暗号化配列ファイルが存在した名残です。

これより前に注釈文や空行を置くのはおやめください。

注釈文と空行

  • 行の先頭に単引用符 ' (U+0027) があった場合、その行の末尾までは注釈として無視されます。
  • 空行も意味を持ちません。ただし余分な空白を残さず改行コードだけにしてください。
  • かな文字配列においては visible=1 指定より前に空行や注釈行を置かないでください。
  • 姫踊子草の同梱ファイルには、出自や履歴も記載するようにしています。

以上のとおり、注釈文は概して覚書に使うことができます。

' 先頭に単引用符が付いています。
' これらの行は内容を読み取られません。
'引用符の直後に空白を入れなくても構いませんが、
'入れたほうが読みやすいように思います。
' ↑完全な空行も事実上処理がありませんので注釈の区切りに使えます。

製作中宣言 DraftData

記述例:

DraftData=1

配列データ自体が作成中である場合は前記のとおりに記述してください。

姫踊子草2においては今のところ意味を持ちませんが、将来設定窓口上の挙動に影響を与える可能性があります。

一括入力量情報 TypeModeDefault

記述例:

TypeModeDefault=8
TypeModeDefault=14
TypeModeDefault=32

かな文字配列定義ファイルでのみ意味を持つ情報です。

定義ファイル内の各々の定義が濁音・半濁音・拗音のどこまでを一度に入力することになっているかを指示します。

この値はタイピング練習ソフト対応機能で用いられます。

TypeModeDefault=8

現在ではほぼ自動化が行われており、必ずしも指定が必要なわけではありません。

ただし、出力確定時点で拗音を出力するような場合は意図的に指定を加えておいたほうが良いでしょう。

意味
2 濁音の濁点を後で入力する
4 半濁音の半濁点を後で入力する
8 (拗音などの)後続する小書き文字を後で入力する
(32) ローマ字入力練習ソフト対応時に、一打で入力した拗音を三打のキー操作で入力する 5

参考までに同梱配列の設定値を示します。

設定値 適用配列
8 NICOLA/飛鳥
12 TRON
14 五十音系/OADG109かな配列/JIS X 6004_1986
32(0) 逐次打鍵系の多数/姫踊子草(かな)配列

同時押下操作を受け付けるキーの指定

注意

シフトキーについて

ここでいうシフトキーとは、通常小指で操作するであろう Shift キーを指します。

このキーはコンピュータの設定により「押しながら」ではなく「押すとシフト状態、もう一度押すと解除」という動作に変更できます4

ここでは前者の状態を前提に話を進めています。

シフトキー以外は特段の指定がなければ同時打鍵扱い

姫踊子草では次の三種の操作を区別して別々の内容を出力できます。
  1. あるキー a の単独入力
  2. あるキー b の単独入力
  3. 上記 a キーと b キーの組み合わせ

a, b のどちらかがシフトキーである場合、シフトキー側を押しながら他方を押したときに上記 3. の操作とみなします。

どちらもシフトキーでない場合は a と b を「ほぼ同時」に押下した場合に 3. の操作とみなします。また、この操作を同時打鍵と呼んで同時押下とは区別しています。

これは原則の動作です。以降で説明する SemiShift や MultiDownHold などの指定を受けたキーはそれに従うことになります。

押下中のみシフトキー動作 SemiShift

記述例:

SemiShift=LR

単独で押して離せば通常キー、他のキーと組み合わせればシフトキーの動作。それが SandS/SemiShift です。

ここで言う SandS とは Space and Shift の略で、空白キーにシフトキーを持たせた動作を指します6

  • 空白キーだけを押して離すと、離した時点で空白が出力されます。
  • 空白キーを押して、離す前に他のキーを押すと、シフトキーを押しながら他のキーを押した場合と同じ動作になります。
  • 後者の場合、その後に空白キーを離しても空白は出力されません。

これを他のキーでも利用できるようにしたのが SemiShift です。

' 左親指担当キー(L)に SemiShift 判定を要求します。
SemiShift=L
SemiShift の指定を受けたキーを押して、
  • 他のキーを押す前に離すと、離した時点で単独入力扱いになります。
  • 離す前に他のキーを押すと、そのキーとの組み合わせ入力扱いになります。
  • 組み合わせ入力が成立した場合は、離しても単に無視されます。
  • 組み合わせ入力の結果が配列ファイルに指定されていなければ、各々単独入力扱いになります。

最初は同時打鍵、離すまでシフトキー MultiDownHold

記述例:

MultiDownHold=LR

MultiDownHold で指定されたキーは、同時打鍵の成立後に挙動が違うものになります。

' 左親指および右親指担当キー(LとR)に MultiDownHold 判定を要求します。
' 主に飛鳥配列系統で用いられています。
MultiDownHold=LR

同時打鍵が成立した後は、キーを離すまで前述の SemiShift と同じ状態になります。

同時打鍵はどちらが先でも成立しますが、SemiShift は押す順番と先に押したキーの状態維持が必要という違いがあります。

同時打鍵と SemiShift の操作の違いによる出力結果の変更はできません。MultiDownHold を前提とした飛鳥配列は、どちらであっても同じ出力を行うことを求めていたためです。

シフトキーと同じ動作をさせる ClassicShift

記述例:

' 左右のAltキーを変換対象とし、典型的なシフト処理で対応します。
ClassicShift=FAFS

SemiShift, MultiDownHold で指定されたキーは、定義上押下の瞬間時点では何も出力しません。

これに対し ClassicShift で指定されたキーは押下の時点で押下情報を出力し、離上の時点でも離上情報を出力します。

組み合わせ入力の判定が成立すればそれに合わせた出力を行いますが、自身の押下・離上をキャンセルされないのが ClassicShift の特徴です。

この指定を与える必要があるキーは、その名のとおり「伝統的な」修飾キーになります。具体的には Alt と Ctrl です。

シフトキーは ClassicShift の指定がなくても強制的に指定を与えたことになります。

脚注

1EUC が使えたり EUC2004 が使えたりする雰囲気があるのはきっと気のせいです。
2BOMがなくてもそれなりに動作するように作っていますが。
3代用対は Unicode Consortium による Surrogate Pair の訳語です。
4この動作を Caps Lock や Num Lock になぞらえて「シフトロック」と呼ぶことがあります。
5TypeModeDefault= の 32 は指定がなくてもこの処理を行うようになりました。
6SandSの名称を付けた方のホームページ 、一次リンク範囲ではご自身のことを「ベム」としか述べられておらず、紹介しづらいったらない。