- 入力キー zh zj zk zl でそれぞれ ← ↑ ↓ →
- 入力キー z, z. z[ z] でそれぞれ ‥ … 『 』
- 入力キー z- ~ , . z/ [ ] でそれぞれ ~ ~ 、 。 ・ 「 」
記号がキー入力出来る意義
今迄でも、記号は ユニコードのコード一覧で必要な記号を探してコピペしたり、かな漢字変換によって入力する事が出来た。しかし、ローマ字変換に必要な記号を定義していればキー入力するだけで素早く必要な記号を入力する事が出来る。
そして、以前はJISに規定されていないShift JISの文字は機種依存文字と呼ばれて、『文字化けの原因となるから使用禁止』とも言われていたが、今では全てユニコードで定義されているから安心して使う事が出来る。(半角カナも普通の文字として扱える。)
そうすると、なるべく沢山の記号を扱いたくなるが、入力キーは かな入力や他の記号の入力に干渉しないように、かつ、それがユーザーにとって使い易く覚えやすいものである必要がある。
- かな変換や他の特殊文字の入力に悪影響を与えない。
- 入力し易いキーを使う。
- よく使う記号には短いコマンドを与え、そうでない記号には規則的なコマンドを与える。
Google日本語のデフォルトの扱い
まず、1.のグループである矢印キーの h j k l は、vi エディターのユーザーにしかそのキーを選んだ理由が分からないはずで、より直感的なキーに変更する。それには矢印のそれぞれの向きを暗示するキーを割り当てるのが分かり易い。恐らく、左向きと右向きの矢印キーを別のキーで代用するとすれば、 <- と -> とするはずである。それなら、それをコマンドとするのが分かり易い。両向きの矢印は <-> だし、それぞれ最後のキーを重ねて打つと太い矢印(<-- ⇐、 ->> ⇒、<->> ⇔)になる。
最後のキーを重ねて打つと、同じ系統で変化するような法則にする: コマンドには英大文字は使わないので、重ねて打つことで大文字にしたり、線を2重にするような変化。そして、文章は 上から下 左から右 という流れがあるから、上向きと下向きの矢印キーに <| と |> を割り当てる。
それから、2.グループにある 2点リーダー と 3点リーダー は頭に z というコマンドを使うよりもそれぞれ , や . を重ねて打つのが直感的でありしかも指の移動が伴わないので素早く入力出来る。『 と 』 もやはり [ と ] を重ねて打つのが直感的だと言える。
そして、3.グループはGoogle日本語入力のプロパティでの設定が優先されるからローマ字テーブルでの定義は不要。
コマンド体系を決める
上記のように、記号の組み合わせ自体に意味があるとコマンドを記憶しやすい。しかし、それだけでは表現に限界があり、扱える記号も多くは出来ない。意味を覚えやすいのはアルファベットの組み合わせである。こぶりローマ字変換では、全てのアルファベットが(少なくとも最初の1文字の入力時には)未確定状態なので、新たに記号と組み合わせてコマンドを作る事が出来る。即ち、以下の形態のコマンドが使える。
- 記号で始まるコマンド
- 未確定状態のアルファベット(例: a、ty、ch など)で始め、次に記号、それ以降は記号かアルファベットのコマンド
また、アルファベットの次に来る記号も、かなと組み合わせて使うことが滅多にない記号にする必要がある。そういう観点で探すと、アルファベットの次の記号としてバックスラッシュ(\)が最も相応しい。
それに、バックスラッシュは A\B の形から、A は下側で B は上側にあると連想されるから、A\ の形式を下付き文字の入力、\B の形式を上付き文字の入力に利用出来る。
そして、A\B の形式にすると、A をカテゴリ、Bをそのカテゴリ内のコマンド というような使い方も出来る。
例えば、p\〇 は発音記号(phonetic)、g\〇 はギリシャ文字(greek) など。その特殊形でラテン文字系は \〇 …頭のアルファベット無し…とする。
それに、バックスラッシュは A\B の形から、A は下側で B は上側にあると連想されるから、A\ の形式を下付き文字の入力、\B の形式を上付き文字の入力に利用出来る。
上付き文字と下付き文字には、0〜9 + − ( ) と アルファベットがある。但し、n以外の上付き・下付きのアルファベットは、大きさや位置が数字と合わないし、a〜zの全部が揃っているわけではない。このバックスラッシュの前後を使い分ける方法は上と下という対比以外にも使えるので、アクセント記号で同一のコマンドを(連打の)バックスラッシュの前側では合成文字用のアクセント記号、後側ではアクセント記号そのものを表すようにした。
そして、A\B の形式にすると、A をカテゴリ、Bをそのカテゴリ内のコマンド というような使い方も出来る。
例えば、p\〇 は発音記号(phonetic)、g\〇 はギリシャ文字(greek) など。その特殊形でラテン文字系は \〇 …頭のアルファベット無し…とする。
また、アルファベット1文字 + 数字という形式も囲み数字の表現に最適なので多用する。この形式の中でちょっと特殊なのが、¼等の分数と罫線素片だ。
欧米ではQuarterを単位とする事が実に多くて、それから考えると½は2番目、¾は3番目、というように数字の一種だと思えるし、罫線素片は、座標平面に於いて第1象限、第2象限…という様に捉えれば数字の一種に出来る。
罫線素片で、5以上はもう一回り、残る要素が ━、╋、┃でそれぞれ 9、0、01 を割り当てる。(ローマ数字でも使ったが)0は10を表し、01は11を表す。素直に10、11を使わないのは、11は1の連打形として╰ を表したかったから。また、╋と漢字の十は似ているし、╋から┃を取れば━になるという理屈で10−1=9を割り当ててみた。(漢字の一を引くと考えれば9に┃を割り当てる理屈もあるが、そう決める。)
プロポーショナルフォントが普及しているのに今更罫線も無いだろうと思っていたが、スプレッドシートと組み合わせて使えば結構役に立つと思って定義することにした。このように色々コマンドの作り方を決めると、同じ記号に複数のキー定義が可能となるので、これらの考え方に優先順位を設ける。
- キーの連打
- 記号の組み合わせ(意味が相応しいもの)
- 記号の組み合わせ(形が似ているもの)
- アルファベット1文字と記号の組み合わせ
- 記号と複数のアルファベットの組み合わせ
複数のアルファベットを使う場合、文字数が少ないと色んな意味が被るので区別しにくいし、多すぎると使い難いので、2文字〜3文字を目安にしている。(Powershellのコマンドレットは文字が長すぎで使うのが面倒くさい。)
Unixのコマンドの長さが私には丁度良いように感じる。
Unixのコマンドの長さが私には丁度良いように感じる。
便利なコマンド
コマンドを覚えて無くても、コマンドのリストがすぐ見られるならローマ字変換での特殊文字入力の価値があると言える。その為にリストへアクセスし易いようにローマ字変換に仕掛けを作った。
- \ver …(こぶりローマ字変換 Ver. [version]) version
- \help …(ヘルプページのアドレス)
そのヘルプページからワンクリックで拡張文字表のページへとジャンプ出来る。しかし、そのリストが更新されると使用中のこぶりローマ字変換の変換結果と齟齬が生じる。
そこで、バージョンを確認する手段も実装した。古いバージョンのリストまでは載せて無いので、合って無ければローマ字変換を最新版にバージョンアップして使う。
記号を選ぶ
コマンドの付け方と共に大事なのが、キー入力出来る記号の選び方である。利用価値が低い記号を含めたが故に利用価値の高い記号のコマンドに(複雑になってしまうような)悪影響を与えるような事があってはならない。このカスタマイズをする者が必要とする記号によって、その知性が分かるという訳である。ユニコードもまた同じで、役に立たない大量の絵文字が登録されている一方で、科学技術の表現に不可欠な上付き・下付きのアルファベットのセットすら揃えてない事を知って驚いた。
上付きのアルファベット小文字は q を除いて存在し、大文字は C F Q X Y Z を除いて存在する。下付きのアルファベット小文字は b c d f g q w y z を除いて存在する。しかし、これらの文字は数字と字体、位置、大きさが不揃いなので科学技術用途には向かない。(発音記号の補助など別の目的でユニコードに導入されたらしい。)こぶりローマ字変換での和文記号の選定に当っては、JISやShift-JISで定義された記号を参照した。過去、Shift-JISのみで定義された記号は「機種依存文字」と呼ばれて文字化けの原因になるから使わないように指導されていた時期もあったが、それもユニコードに登録されているから現在は問題なく使える。
その「機種依存文字」の中で一番良く使われているのが丸数字だろう。コマンドも分かり易いので、同種の黒丸数字、括弧付き数字、ドット付き数字、ローマ数字を含めて定義した。
欧文記号は、US International キーボード のALTキー+数字で入力可能な文字や欧文フォントで共通して採用されている文字などを参照した。
US International キーボードのアクセント記号の入力方法も参考にして、同じキーを使う( ' " ` ~ ^ の5つのキー)。マクロン(-)、キャロン(v)、ブレイブ(u)、については規定が無く、単に形が似ているという理由で私が決めた。数学記号などで 和文と欧文では 同じ意味で異なる記号が幾つか使われていたので、国際標準である欧文の方を採用した。(和: ≒ ≦ ≧ 欧: ≈ ≤ ≥)
記号個別の薀蓄
記号を表すのに記号の組み合わせとは言っても、その順番に戸惑う事もある。矢印
だと <- が ← を表すから順番は自ずから分かるが、≤ などは < と = から成り立っていて、どっちを先にするか不明である。
だと <- が ← を表すから順番は自ずから分かるが、≤ などは < と = から成り立っていて、どっちを先にするか不明である。
こういう場合は、記号の名称を手がかりとする。≤は、"LESS-THAN OR EQUAL TO"という名称を持っているのでその順序から <= の順にした方が良い。同様に、≈は、“ALMOST EQUAL TO”なので ~= の順とする。
<=> は ⇄ を表し、<->> は ⇔ を表す違いについて: ⇄ は化学式で双方向の反応がある事を意味しているので真ん中に = が来るコマンドが相応しく、⇔ は ↔ が太くなっただけだと解釈すれば、最後の文字連打の法則を適用出来る。
ダッシュは、字体や長さが長音符とは異なる。短い方は en dash、長い方は em dash と呼ばれ、それぞれ アルファベットの n と m の幅のダッシュという意味から来ている。
この様に、形が似ている文字でもコマンド名で区別が簡単に付くので、キー入力には、欲しい文字を目で選ぶ手間が省ける利点もある。ギュメは仏語の引用符である。一見、そのシングル・ダブルと入力キーが逆になっているように思えるが、日本語のカギ括弧と同じように扱う。即ち、第一引用の « と » は1回、第二引用の ‹ と › は2回 角括弧のキーを打つ。
通貨単位の内、ポンドは L をデザインしたマークになっている。これは、ラテン語の libra (天秤) から来ていて、重さのポンドもlb.と記述されるから、コマンドにも lb を使用した。
記号論理のコマンドはC言語のビット演算子のコマンドの真似をした。C言語の論理演算子だとコマンドの文字数が増えるし、「排他的論理和」が無く、「否定」のコマンドが「逆ビックリマーク ¡」と被ってしまう。
集合も論理にとって重要だと考えているので、その記号はなるべく入れるようにした。
∑ と ∏ はギリシャ文字の大文字にもあるが演算子としての記号、µ もギリシャ文字の小文字にもあるがSI接頭辞としての記号なので、字体が似ていても(文字コードも入力コマンドも別々の)異なる文字として正しく使う必要がある。
× は、形からコマンドを \x としたかったが、上付きの x とコマンドが被るので、乗算の意味の方から \* にした。
アクセント記号の合成
ユニコードでアクセント記号を含んだ文字が定義されていない場合に、合成可能なアクセント記号を文字の後に挿入することで希望する文字とアクセント記号の合成文字を作る事が出来る。この合成可能なアクセント記号と同じ字体で、合成可能ではないアクセント記号もあって、どちらも同じ字体には同じコマンドだが、二重のバックスラッシュ(\\)の前〔合成可能〕 か後〔合成しない〕 かで区別する。
このコマンドはアクセント付きの文字の入力で使用しているコマンドと同じにしている。
更に、かな・カナ文字の後ろに濁点(゛)や半濁点(゜)を入力出来る。これは、アイヌ語カナ表記に必要な セ゚、ツ゚、ト゚ がユニコードでは定義されていない為に文字合成で対応させるのに必要な機能として実装した。
ユニコードにはアクセント記号を含んだ単一のコードからなる文字も定義されているが、アクセント記号を合成した複数のコードからなる文字も同じように扱う事になっている。しかし、どのように表示されるかはフォント次第である。場合によっては、単一のコードの文字でも文字とアクセント記号が分かれて表示される。(例: 単一のコード 0x01CE で Arial → ǎ Verdana → ǎ)
文字の組み合わせ
そして、文字の組み合わせも定義出来るので、指数表現、脚注の数字、仏語の序数詞を簡単に入力できるコマンドを用意してみた。(丸数字の最大が50だったから、指数表現も脚注の数字も50で区切った。)指数表現のコマンド x-50 〜 x50 の内、x0 というコマンドは(×10⁰ は ×1 なので、必要が無いから)存在しない点に注意。 この範囲の数字で素粒子から全宇宙レベル迄表現出来るはずだが、合成文字なのだから必要なら自分で数字を付け足す事も出来る。ラテン系(スペイン語・イタリア語・ポルトガル語など)の言語の序数詞として º と ª がユニコードに定義されているが、仏語の序数詞は無かった。
コマンドの x は、掛けるマークの意味だけでなく 指数の底をローマ数字で表わした意味もあるから気に入っている。
序数詞は、形容詞の一種なので、修飾される名詞の男女、単複と数字が1か2か3以上かの区別で形が変わり、全部で10種類になる。e r d s の4種類の文字の組み合わせになる。幸い、使用する4種類の文字の字体は揃うので、これら10種類の序数詞を上付き文字の組として定義してみた。
それから、英語を示すシンボルマークᴱᴺ も作ってみた。例えば、cat をこぶり流にカタカナにすれば、「ケャト」 となるのだが、「キャット」 に慣れた目から見れば珍妙に思われる所、「ケャトᴱᴺ」 と書く事で 「英語発音に再現可能な形式のカタカナ」である事を示す事が出来るのだ。e だけだと何の事か分かり難いので en の2文字としたが、上付き文字の小文字だと e と n の字体が異なって不都合なので大文字の方にした。