« 2010年10月 | トップページ | 2010年12月 »

2010年11月

2010年11月30日 (火)

azikにおける撥音(syllabic nasal)拡張入力

azikにおける撥音(syllabic nasal)拡張入力

Time-stamp: "Mon Aug 02 11:26:02 JST 2010"

日本語のローマ字表記においてann, inn, unn, enn, onnの含まれることが 多い。中根式簡易速記法の解説書によると「漢字を音読みして二音になると き、二音めはツ、キ、イ、チ、ク、ンのどれかが来る」という。ここではそ のなかで「ん」になる場合を考える。

「昭和33年8月12日に中根正雄先生が「即席速記法」として考案いたしまし た。昭和47年9月10日に「簡易速記法」、昭和53年4月15日に「スピードメモ 法」と名称を変更して改良を加えながら今日に伝えられております。」

手元の漢和辞典をみると音読みがヤン、ユン、ヨンの漢字はない。またツ ン、ムンもない。何となくこれらには外国語風(中国語?)な響きがある。ス ンは「寸」のみ、ノンは「暖」しかない。パソコンで変換してみればすぐに 分かる。候補として出てこない。一音めに来る五十音のうち五個だけに二音 めに「ん」がくるような音読みの漢字がない。それに対して多いほうの 「カン」、「ガン」と音読みする漢字は400個を超えている。

訓令式ローマ字のローマ字と仮名の対応表には仮名一文字を表すローマ字 (英字列)が定義されている。「あえいおう」の「a, e, i, o, u」以外は子 音英字とこれら五つの母音英字の組み合せで一つの仮名文字になる。「 きょ」の「kyo」のように三文字並びもある。ローマ字の末尾文字は必ず母 音英字になる。

ここで母音とは何であろうかに突っ掛かる。ある程度長い時間にわたって発 声できる持続音が母音らしい。それに対して短時間で終わる発声が子音にな る。日本語の場合は長く伸ばす発声(発音)は結局のところ「あいうえお」で 終わる。その「あいうえお」が日本語の母音となる(?)。その音声を英字で 表すには「a, i, u, e, o」を使うと収まりがよい。

仮名のローマ字表記とは表音文字である仮名文字の発音によく似た発音とな るような英字列で置き換えることである。英字を使う人達によるローマ字の 発音が我々日本人の仮名を読む発音に近くなるように定めたものである。

ローマ字で日本語を疑似表記するとき日本語の母音として使う「a, i, u, e, o」を母音英字と呼びその他の英字を子音英字と呼ぶことにする。ローマ 字に使う英字のグループ分けのために母音・子音の用語を使う。英字の「a, i, u, e, o」が英語の母音であるかどうかには関わらない(端折るならこれ らの文字で表される音声ということでよいらしい)。

ローマ字入力にあたって打とうとする仮名に相当するローマ字の英字並びが 分からないときはms-imeやatokといった仮名漢字変換プログラムの設定を見 ればよい。マヌケなことに私はインターネット検索でみつけたローマ字仮名 変換表を頼りにしていた。目の前のパソコンを見れば済むことにもかかわら ずにである。手元にある字引で分かることを図書館に問い合わせるようなこ とをやっていた。

パソコンのms-imeやatokなどの仮名漢字変換プログラムからローマ字入力す る場合のローマ字仮名変換テーブルは仮名一文字に相当する英字列(ほとん どは2ストローク)を定義している。中間に拗音が挟まった仮名三文字を3ス トロークのローマ字とするものもある。仮名一文字のローマ字表記ではその 末尾文字が必ず母音英字(a, i, u, e, o)になるという特徴がある。

私のパソコンにインストールされているms ime 2000に設定されているロー マ字仮名対応は277個、atok11のそれは211個である。そしてskkのローマ字 仮名変換テーブルskk-rom-kana-base-rule-list(skk-vars.elに収容)には 209個のローマ字仮名の対応がある。五十音というくらいだから多くても二 倍の百個くらいかなと思っていたら四倍もあった。

現在使用(試用)中の自作skk-azik.vimにおけるローマ字仮名対応は640個も ある。これは訓令式にazikが付け加わった合計数になる。訓令式の約240個 に対してazik拡張により約400個も増えることになる。azikが訓令式も受け 付けるように工夫していることもあって膨大な個数になる。

azik試用にあたっての苦労話をネット上でみつける。仮名漢字変換プログラ ムのローマ字仮名変換テーブルに登録可能な個数が550個であるためにazik 拡張の一部を削るしかなかったという。skkにazikを入れるにはそのような 制限はない。skk-azik.elや自作のskk-azik.vimそしてskkime98の default.elは問題なく動いている。

azikによる追加数が多いのは仮名一字に対するローマ字の登録だけではない ことがある。例えば仮名二文字の「かん」を拡張ローマ字の「kz」(または kn)に対応させたりする。また、azik拡張のローマ字には末尾文字(多くは二 文字目)が母音英字ではないものが数多くある。訓令式のローマ字にはその ようなものは無い。末尾文字として子音英字を使うタイプの拡張ローマ字は幾ら でも追加できるのである。

ノーマルな訓令式とazik拡張を併用できるように「kann」と「kz」(または kn)のどちらにも「かん」が割り付けてある。ローマ字対仮名が一対複数に なるケースがある。ローマ字を仮名に変換するがその逆の仕事はないので対 応が一対一でなくても困らない。

「かん」のノーマルなローマ字表記(訓令式)は「kann」なのでローマ字入力 は4ストロークになる。ところでローマ字と仮名の対応では「nn」と「ん」 が一対一に対応する。英語読みに慣れると「n」に「ん」を対応させればよ さそうに思えるがそうはいかない。「なにぬねの」を「na, ni, nu, ne, no」で打ちたい事情がある。もし「n」に「ん」を対応させると「n」を押し た時点ですぐに「ん」になる。それでは「なにぬねの」が入力できなくなっ てしまう。

azikにおいて先行母音が後続撥音を伴う英字列、例えば「ann」を「z」で置 き換えるなどを撥音拡張という。これによれば「かん」が「kz」の2スト ロークで入力できてしまう。パソコンのローマ字仮名対応は訓令式ローマ字 で定義されている。そのなかにローマ字の末尾文字が「z」になるような ローマ字はない。それゆえ「kz」に「かん」を対応させても不都合はない。 こうして訓令式のローマ字では4ストロークだったものがazikでは2ストロー クで打てることになる。

「らんかん」は「rzkz」(rnknでもよい)で打てる。ここで注意すべきは「母音 +撥音」が単独で現われるとき、たとえば「あん」を「z」や「n」で済ませ ることはできないことである。もし「z」を「あん」(ann)に割り付けると 「ざじずぜぞ」が「za, zi, zu, ze, zo」では入力できなくなる。そのため 「あん」は正統azik式の「aq」か訓令式そのままの「ann」を使うしかな い。例えば「いんかん」は「iqkz」、「ほうあん」は「hpaq」でなければな らない(「q」を「ん」に割り当てないなら「ん」を「nn」にする)。先行する 子音英字がない「あん、いん、うん、えん、おん」はそのまま一字ずつ入力 する。

QWERTY配列のキーボードを使って訓令式と同じようにローマ字入力するのが azik拡張ローマ字入力方式である。キーボードのキー並びを移動させるキー 入れ替えはしない。変更はローマ字仮名変換テーブルに新しいローマ字仮名 変換規則(省打鍵規則)を追加することだけである。

新しく追加したローマ字仮名変換規則が覚えやすいものであるか、これまで のタッチタイプから無理なく移行できるかどうかを考える。「かん」を 「kz」で打とうとするとき先ず右手中指が「k」を叩く。次に訓令式にした がうなら「a」を叩くべく左手小指が動き始める。このとき撥音拡張である ことに気付いたら「a」キーに向う左手小指を一つだけ下にずらせて「z」に 向かわせる。これで「ann」の3ストロークを「z」の一打で済ませることが できる。azik導入まもないうちは訓令式に「ann」と打っている最中に「 アーッ、zでよいのだ」と気付く。 急いでなければちゃんと打てたものをワ ザワザ消して再度「kz」と打ち直してみたりする。それは無駄なようだが、 よい練習になっている。

この拡張ローマ字入力方式を「azik」と名付けたのは母音キーaの下のzを撥 音拡張キー(ann)として使い、母音キーiの下のkを撥音拡張キー(inn)として 使うことからという。それだけではなく母音キーu, e, oの下のj, d, lも撥 音拡張キー(unn, enn, onn)として使う。都合のよいことに母音英字キーa, i, u, e, oの下のキーz, k, j, d, lはすべて子音英字キーである。これら が訓令式ローマ字の末尾にくることはない。そこでazik拡張としてこれらを ローマ字の末尾文字にしても訓令式の割り当てと衝突しない。

撥音拡張はd(enn)、j(unn)、k(inn)、l(onn)、z(ann)の五つからなる。 z(ann、ん)の代りにnを使うこともある。交互打鍵のために左小指から右人 差し指の移し換えるわけである。nは撥音nnとして使われるからzの代わりに 使っても唐突に感じない。ローマ字としては単独のnに割り付けをしない が、ローマ字の末尾文字としてnを使うことに問題はない。

ローマ字の冒頭文字がa,e,i,o,uである場合は後続文字がない。また冒頭文 字がl,qになる割り当てはない。残り19個の英字に撥音拡張を割り当てるが 空席もある。そこに独自の割り当てをしても構わない。割り当てない理由は 字面とその発音が結びつきにくいからである。自分専用のパソコンなら他人 に分からない暗号のようなものを定義してもよい。なぜか「ryk」に「りょ く」が割り当ててある。割り当てた理由は分からないが便利に使っている。

以下に撥音拡張のローマ字仮名対応をアルファベット順に列挙する。azikで 拡張されるローマ字仮名対応の書かれたskk-azik.elから抜き出したもので ある。あまりにも数が多いので覚えきれない。いっぱいあることが分かるよ うに書き出してみる。

(1)撥音拡張d(enn)

bd(べん), cd(ちぇん), dd(でん), fd(ふぇん), gd(げん), hd(へん), jd (じぇん), kd(けん), md(めん), nd(ねん), pd(ぺん), rd(れん), sd(せ ん), td(てん), vd(う゛ぇん), wd(うぇん), xd(しぇん), yd(-), zd(ぜん) (ydは空席)

byd(びぇん), gyd(ぎぇん), hgd(ひぇん), hyd(ひぇん), kgd(きぇん), kyd(きぇん), mgd(みぇん), myd(みぇん), ngd(にぇん), nyd(にぇん), pgd(ぴぇん), pyd(ぴぇん), ryd(りぇん), syd(しぇん), tyd(ちぇん), zyd(じぇん)

cd(ちぇん)←tyd(ちぇん)、jd(じぇん)←zyd(じぇん)、xd(しぇん)←syd( しぇん)

(2)撥音拡張j(unn)

bj(ぶん), cj(ちゅん), dj(づん), fj(ふん), gj(ぐん), hj(ふん), jj( じゅん), kj(くん), mj(むん), nj(ぬん), pj(ぷん), rj(るん), sj(すん), tj(つん), vj(-), wj(-), xj(しゅん), yj(ゆん), zj(ず) (wjは空席)(vj割り当てなし)

byj(びゅん), gyj(ぎゅん), hgj(ひゅん), kgj(きゅん), kyj(きゅん), mgj(みゅん), myj(みゅん), ngj(にゅん), nyj(にゅん), pgj(ぴゅん), pyj(ぴゅん), ryj(りゅん), syj(しゅん), tyj(ちゅん), zyj(じゅん)

cj(ちゅん)←tyj(ちゅん)、jj(じゅん)←zyj(じゅん)、xj(しゅん)←syj( しゅん)

hyj(割り当てなし、右人差し指三連打)

(3)撥音拡張k(inn)

bk(びん), ck(ちん), dk(ぢん), fk(ふぃん), gk(ぎん), hk(ひん), jk(じ ん), kk(きん), mk(みん, nk(にん), pk(ぴん), rk(りん), sk(しん), tk (ちん), vk(う゛ぃん), wk(うぃん), xk(しん), yk(-), zk(じん) (ykは空席)

dck(でぃん), tgk(てぃん), ryk(りょく)は特種拡張

(4)撥音拡張l(onn)

bl(ぼん), cl(ちょん), dl(どん), fl(ふぉん), gl(ごん), hl(ほん), jl (じょん), kl(こん), ml(もん), nl(のん), pl(ぽん), rl(ろん), sl(そ ん), tl(とん), vl(う゛ぉん), wl(うぉん), xl(しょん), zl(ぞん)

byl(びょん), gyl(ぎょん), hgl(ひょん), hyl(ひょん), kgl(きょん), kyl(きょん), mgl(みょん), myl(みょん), ngl(にょん), nyl(にょん), pgl(ぴょん), pyl(ぴょん), ryl(りょん), syl(しょん), tyl(ちょん), zyl(じょん)

cl(ちょん)←tyl(ちょん)、jl(じょん)←zyl(じょん)、xl(しょん)←syl( しょん)

(5)撥音拡張z,n(ann)

bz(ばん), cz(ちゃん), dz(だん), fz(ふぁん), gz(がん), hz(はん), jz(じゃん), kz(かん), mz(まん), nz(なん), pz(ぱん), rz(らん), sz(さん), tz(たん), vz(う゛ぁん), wz(わん), xz(しゃん), yz(やん), zz(ざん)

bn(ばん), cn(ちゃん), dn(だん), fn(ふぁん), gn(がん), hn(はん), jn(じゃん), kn(かん), mn(もの), nn(なん), pn(ぱん), rn(らん), sn(さん), tn(たん), vn(う゛ぁん), wn(わん), xn(しゃん), yn(やん), zn(ざん) (mnは特種拡張「もの」になる)

byz(びゃん), gyz(ぎゃん), hgz(ひゃん), hyz(ひゃん), kgz(きゃん), kyz(きゃん), mgz(みゃん), myz(みゃん), ngz(にゃん), nyz(ひゃん), pgz(ぴゃん), pyz(ぴゃん), ryz(りゃん), syz(しゃん), tyz(ちゃん), zyz(じゃん)

byn(びゃん), gyn(ぎゃん), hgn(ひゃん), hyn(ひゃん), kgn(きゃん), kyn(きゃん), mgn(みゃん), myn(みゃん), ngn(にゃん), nyn(にゃん), pgn(ぴゃん), pyn(ぴゃん), ryn(りゃん), syn(しゃん), tyn(ちゃん), zyn(じゃん)

cz(ちゃん)←tyz(ちゃん)、 jz(じゃん)←zyz(じゃん)、xz(しゃん)←syz (しゃん)

azik拡張入力における省打鍵規則は撥音拡張だけでも軽く150個を超えてし まう。他のものを合わせると400個程度にもなる。このなかで中間に拗音が 挟まったものは使うことが少ない気がする。使わなければ反射的な頭の閃 き、敏感な指先の反応は望めない(実用にならない)。一文字ずつ入力のほ うが簡単な気がする。

定義されていても殆ど使われないローマ字仮名対応は訓令式にも数多くあ る。ms-imeやatokのローマ字仮名変換テーブルで一文字ずつに分解しないで も打てる省入力法がみつけることは多い。200個もが定義されていても滅多 に使わない(憶えてないので使えない)ものが少なからずある。

ローマ字入力は仮名入力に比べて覚えるべきキーの数が少ないため取りかか りは容易であるが、頭の中で読みからローマ字に変換する作業が反射的にで きるようになるまでに長い時間がかかり上達は遅いという。それでも何とか 使いこなせているのは小学校からローマ字に馴染んできたお陰である。仮名 をローマ字で書き表すことから始めてその逆変換が一瞬で出来るようになっ ている。

azik拡張で「kz」が「かん」であることはキー配列を思い出して何とかな るが「かん」から「kz」は難しい。打鍵数が多くなっても訓令式で「kann」 とするほうが速い。ローマ字を習得するにかかった時間を思えばazikを我が 物にするにはそれなりの辛抱が要る。

QWERTY配列のキーボードそのままにローマ字入力する方法はazikの他にも幾 つかある。どれを採用するかの決め手は自分のパソコンで簡単に使えるよう セット出来るかどうかだろう。自分には合わないと思ったときのために元の 状態に戻る帰り道を準備しておかないと一歩を踏み出せない。

| | コメント (2) | トラックバック (0)

2010年11月21日 (日)

sticky key(粘りつきキー)とは?

sticky key(粘りつきキー)とは?

Time-stamp: "Mon Aug 02 15:01:20 JST 2010"

マイクロソフトの「固定キー機能」を解説したページのurlにsticky keysと いう言葉が含まれている。固定キー機能とはshift, ctrl, alt, windowsな どの補助キーを他のキーと組み合せる同時打鍵が難しいか出来ない人向けの ユーザー補助機能をいう。同時打鍵を順次打鍵に代える方法である。

stickyには粘りつくとか不愉快な、気難しいという意味があるらしい。ここ では粘りつくをイメージすると分かりやすい。shiftキーが粘りつくため次 のキーが押されてもshiftキーが戻りきっていないので順次打鍵なのに同時 打鍵とみなされる。shiftキーが粘りつきキー(sticky key)なら便利かもし れないということである。

stick(スティック)は突き刺すとか張り付けるからの延長で棒(ステッキ)と か糊の意味もある。ところでスティック糊というのがある。素直には外形が棒 状の形(口紅形)をした糊だろうが「のり糊」の繰り返しかもしれない。そうい えば口紅はlipstickであった。こちらは容器の形から由来するに違いない。もっ ともその性状・用途から失礼ながら糊でいいかもしれない。

「繰り返しになるが sticky shift とは順次打鍵方式を指すのだと私は思 う。その実現の過程でシフトキー以外のキー ( ; ) を使うべきだという結 論に達したに過ぎない。 sticky shift が変更するのは方式であって位置で はない。だから Windows に標準搭載されている「固定キー機能」は立派な sticky shift だと言える。
じゃあどう表現すればいいのか。 ; であってもシフトさせるためのキーだ からシフトキーだと言ってもいいんだけど、それだと混乱する。この文章さ えも意味が通らなくなる。なので sticky key という言葉を借りる。「シフ トキーを sticky key にするのではなく、 ; を sticky key にした sticky shift」これでどうだろう。長いがこれで間違いがなくなる。
「固定キー機能」で SKK を使用してもさほど便利ではない。一方で ; を sticky key とした sticky shift で SKK を使用するとすごく便利だ。パッ チを書きたくなるくらいだ。ぜひ ; を sticky key とした sticky shift でSKK を使ってみてほしい。」
「固定キー機能 (組み合わせキーを 1 つずつ押す)
固定キー機能は、2 つ以上のキーを同時に押すことが困難な人のためのユー ザー補助機能です。固定キー機能を有効にすると、Ctrl + P のようなキー の組み合わせを押す必要のあるショートカットを使用するとき、すべての キーを同時に押す代わりに各キーを 1 つずつ押すことができます。以下の 手順では、コントロール パネルの [ユーザー補助のオプション] を使用し て、固定キー機能を有効にする方法を紹介します」

Windows XP の初期設定では固定キー機能が有効になっていて、たとえば Shift キーを 5回連打すると次のようなメッセージが表示されます。

「shiftキーが5回押されたので、固定キー機能がせいオンになりました。固 定キーの機能を使うと、shift、ctrl、alt、windowsロゴキーなどを使った 組み合わせキーを使うときに、複数のキーを 同時に押す必要がなくなりま す。」
「パソコンのキーボード操作では、[Ctrl] [Shift] [Alt] 等の補助キー (以下、この3キーをまとめてこう表記します)を組み合わせ、「2つのキー を同時に押す」という場面が必ずあります。しかし、体の運動機能が不自由 な障害者にとっては、指、顎、口等、ゆっくりでも何とか自分の意志通りに 動かせる部位を駆使し、ようやくキー1つを押せる場合がほとんどで、基本 的に2つのキーを同時に押す事は難しいようです。また人によって不可能な 場合も多いです。
健常者に例えてみると、全てのパソコン操作を指1本で行わなければならな い状況をイメージしてもらえれば、それでは普通のキーボード操作は、ほぼ 不可能に等しい事は想像していただけるかと思います。
そこで、[Ctrl] [Shift] [Alt] キーでも、いわゆる [CapsLock] の様に ロックができれば、指1本でのパソコン操作が可能になります。幸いWindows には標準で「ユーザー補助」という機能が付いていますので、これを設定す れば、実現することができます。」
「皆様は1文字だけ大文字を打つときはどのようにされていますか。きっと 「シフトを押しながら打つ」ことで大文字を入力しているんじゃないでしょ うか。これは至極一般的な方法ですが、僅かながら問題もあります。シフト キーというのは左右に一個ずつあるので、右手で打つべきアルファベットの 場合はシフトキーは左手で、左手で打つべきアルファベットの場合はシフト キーは右手で、ということになりますよね。THE とか AND のように大文字 だけなら Caps Lock すりゃいいですけど、IsFileOpen とか setNextDate みたいな java 等にありがちな大小字混合のメソッドを打つときはあちこち に指が飛ぶのでせわしないことこの上ないわけです。そして何より、左手で シフトを押しているときに同じ左手の領域の文字を打とうとすると極端に効 率が落ちてしまいます。
んで、何かいい方法はないかと候補に上ったのが sticky shift です。シフ トを押しながらキーを打つのではなく、一度シフトを押して離した直後の文 字だけが大文字になってくれればいいのです。ただし、これには多くの障害 があります。シフトキーの押し・離しは文字端末では検出できないために、 汎用性がありません。又、私の使用している KINESIS のキーボードでは ハードウェアで sticky shift を実現できる機能もあるのですが、これも環 境に左右されているのでイマイチです。
ならば。sticky になるキーをシフトではないキーにすればいいのです。幸 いにして qwerty 配列では唯一、ホームポジションでありながらアルファ ベットでない文字があります。セミコロンです。諸事情があって私はセミコ ロンの位置とバックスラッシュの位置を入れ換えてますが本質は変りませ ん。セミコロンでこれを実現するのはとても簡単で、こんなかんじにしま す。
シフトキーは遠いので嫌いという私みたいなものぐさ人間にはうってつけで はないでしょうか。指をホームから殆ど動かさずしかも大文字を打つときに 反対の手の指をシフトキー上に拘束する必要もないというのは、キーボード ワークの一連の流れを妨げず無駄な動作を最小限に抑えるという合理的な実 益があると思うのですが。」
「以前も説明したと思うが、念のため。 SKK的な入力だと左手小指への負担が、それはもうEmacs並でかなりキてるの で、sticky-shiftぽいものを実装した。sticky-shiftについてはGoogleさん でよろしく。簡単かつ、いいかげんに説明すると、Shiftと英字の同時押し ではなく、任意のキーを押してから英字を押す。Shiftの位置変更と、同時 押しの回避で、負担が減る。そういう機能。 使い方は以下のような感じ。
let g:skk_sticky_key = ';'
機能をオフにしたい場合はskk_sticky_keyを:unlet!してください。」
(注)このページにあるパッチファイルをskk.vimに当てたうえで使う(らし い)。

meadowで使う本家skkにおいてセミコロンにshiftキーの機能を負わすものが 公開されている。

「SKK では通常、変換開始および送り開始の位置を大文字で指定しますが、 これを任意のキーで指定できるようにし、sticky-shift ライクな操作を可 能";" キーで変換位置が指定できるようになります。例えば「有る」が"; a ; r u" でも入力でき、シフトキーを押す必要がなくなります。にします。」

"SandS" で小指を解放(space and shift)

skkでazikを使い始めたこともあって、azik開発者のページで紹介されてい るSandSを試している。

「ここで提案する『SandS』キーは、スペースキーにシフトキーの機能も持 たせたものです。 親指でスペースキーを押しながら、アルファベットキー を押すと大文字が入力できます。単にそれだけですが、使って見ると意外に 使いやすいです。最近は日本語の文章でもアルファベットが多く混じるよう になりました。特にNHK、IBM、SONYなど、アルファベットの大文字が続くよ うなケースが多いようです。SandSはこのような場合に威力を発揮します。 『SandS』はSpace and Shift の略です。これが本当の親指シフトですよ ね。」
AZIK のページで "SandS" という、キーボードのカスタマイズが提案されて いるのを見つけました。
これは Space Key (Space Bar) に Shift Key の機能を合わせ持たせてみて はどうかというもので、英大文字が続く入力に効果を発揮すると紹介されて いるのですが、SKK における仮名漢字変換にも効果的なのではと思い、試し てみました。
SandS を使用すると、Space の動作は次のようになります。
  • Space を押しながら他のキーを押すと、Space が Shift の 役目をする。
  • Space を押し、そのまま指を放すと、Space は Space として 機能する。
実際に使ってみた感想ですが、確かに SKK との併用にも効果があると思い ました。小指を酷使する必要がなくなるのももちろんですが、他にも、 Shift を押しにいくことで腕が左右に振れるということがなくなり、入力に 安定感が出るような気がします。
ただ、自分は Windows なので「猫まねき」というシェアウェアを使ってこ の機能を実装することができたのですが、UNIX 系の OS ではどういう方法 があるのかわかりません。」
「仮想デバイスドライバ(フリー)
OSのバージョンに合わせた仮想デバイスドライバが必要になります。これら のドライバの使用にあたっては各自の責任のもとでご使用ください。
※これらのドライバはKAZIKの開発者萩谷洋治さんに作成していただきまし た。」

上記作者萩谷洋治氏のページでCtrlPlus(Use WordStar Commands in Windows、ダイアモンドカーソル実現ソフト)が英文で紹介されている。 (元ページはリンク切れ)萩谷洋治氏のベクターのページは生きている。

http://web.archive.org/web/*/http://www.geocities.com/y_hagiya/
「SandSは、Space bar を right shift key として使用するための仮想デバ
イスドライバです。
SandSのインストール
1.  keyremap等のキーの割り当てを変更するプログラムがインストールされ
ている場合は、それらをアンインストールして下さい。keyremapはSandSの
機能を完全に抑止します。
2.  SandS.vxdファイルをc:\Windows\systemディレクトリにコピーしてくだ
さい。
3.  c:\Windowsディレクトリの中のsystem.iniファイルの[386Enh]セクショ
ンの最後に、仮想デバイスドライバとしてSandSを登録する為の行を追加し
てください。
  例:
      [386Enh]
      .
      .
      .
      device=SandS.vxd
4.  システムを再起動してください。
SandSをアンインストールする
1.  system.iniファイルの[386Enh]セクションに追加したdevice=SandS.vxd
という行を削除してください。
2.  c:\WindowsディレクトリからSandS.vxdファイルを削除してください。
3.  システムを再起動してください。」

windows meではwindows 98用のものを使う。小指で押していたshiftの代わ りに親指のスペースを使う。今迄は漢字変換の候補を出すところ、つまり ローマ字入力後にしかスペースを使ってない。それが漢字とか送り仮名 に入るところ(ローマ字入力前)から スペースを使うようになる。仮名漢字 変換の前後でスペースを使う。これまでは暇だった親指の出番が増える。

SandSの機能を使うだけにキー入れ換えソフトの「猫招き」等を使うのは牛 刀で鶏を割(さ)く(調理する)の大袈裟な気がしていた。そのためにSandS機 能を見送っていた。azikの常用を始めたので次の段階としてSandSを試すこ とにする。この方法は単機能だから気楽である。

左shiftキーは左小指ホームポジションaに近いがホーム段の下にあるので左 小指の動きに連られて他の指がホームポジションから離れやすい。aキーす ぐ隣りのcapslockと左shiftを入れ換える方法をとる人がいると聞く。右 shiftキーは小指のセミコロンから離れすぎで右小指で押すには無理があ る。そうすると右手指の全部がホームポジションから離れてしまう。手指を ホームポジションの元の位置に戻すために思わず手元を見てしまうことが多 い。

平成22年7月23日からSandSを使い始める。つい小指が動いてしまうことが多 い。慣れるまでには少し(かなり)かかるだろう。15年間大文字をshiftで 打ってきたのだから簡単には変われない。ネット上に次の感想があった。同 感である。

「使ってみた感想
慣れないせいか、ついシフトキーを使ってしまう。しかし、慣れてしまえば SKK と組み合わせて、全くホームポジションから指を動かす事無く漢字を入 力できるのは非常に便利だと思われる。」

言うまでもないがskkとかms-imeなどの仮名漢字変換を使うときだけでな く、それらを経由しない直接入力でもSandSは機能する。

  • 親指 thumb, first finger
  • 人差し指 forefinger, index finger, second finger
  • 中指 middle finger, third finger
  • 薬指 ring finger, fourth finger
  • 小指 little finger, small finger, fifth finger

猫まねきからSandSを使う

SandS機能を備えている。猫まねきと姫踊子草の同時使用はできるらしい。

平成22年7月25日猫まねきをインストールする。仮想デバイスドライバ SandS.vxdでは少し操作が難しい。スペースキーと他のキーとの打鍵間隔に よるのか希望通りに動かないことがある。こちらに換えてからストレスなく 使えるようになった。

萩谷洋治氏のSandS.vxdの付属readme.txtには単に「SandSは、Space bar を right shift key として使用するための仮想デバイスドライバです。」とあ るだけで動作の詳細が分からない。skk-azik.el原作者である小野田氏の記 事は猫まねきのヘルプにある説明のようである。

猫まねきの単独キータブの左下にある「よくある設定」ボタンから拡張設定 タブにある「Spaceにシフトの働きを兼用させる」にチェックを入れる。

ベクターのサイトでは詳しいことが分からない。配布ファイルをダウンロー ドしてその中に含まれるヘルプファイルを読むしかない。ヘルプファイルに 次が書かれている。

「このSandS機能が有効だとスペース(空白)をたくさん入力したいときに 不便です。これは猫まねきに単純にスペースキーとして働く組み合わせキー を指示すればいいだけですが、ここにある「Shift+SpaceをSpaceにする」を オンにすると、 Shift+Spaceが従来通りのSpaceになります。」
「<インストールしないでヘルプファイルを読みたい場合> 猫まねきの配布ファイルは実行ファイルの形をしていますが、これはLHA 互換の解凍ツールで中身を取り出せます。インストーラーの実行前にヘルプ を読んで使えそうかどうか判断したい方はお試しください。」

| | コメント (1) | トラックバック (0)

2010年11月 9日 (火)

skkでazikを使う

skkでazikを使う

Time-stamp: "Mon Jul 19 14:53:19 JST 2010"

azikを導入してすぐにタイプが速くなるとはいかない。使い始めは頭の中で ひらがなをローマ字のアルファベット並びに翻訳する時間がかかる。例えば 「かん」をazikでは「kz」と打つ。先ず「k」を打つは条件反射的に出る。 次の「z」に時間がかかる。撥音拡張のannに分解して、エーッと、aキーの 下にあるキーはと手元のキーボードを見て「z」を打つ。「k」はすぐでも次 の「ann」→「z」でもたつく。普通のローマ字で「kann」を打つのと時間は それほど変わらない。イヤ、遅いだろう。「かん」→「kz」の対応が条件反 射にならない。思わず手元に目が行き「z」と気付く。これでは駄目であ る。ノーマルなローマ字で「kann」→「かん」が一瞬で閃くようにazikの 「kz」→「かん」がピンと来るまでの訓練が必要である。ノーマルなら「か ん」から「kann」への変換もその逆変換も一瞬で完了する。それはローマ字 経験が十分あるからである。azikの打鍵数の少なさがタイプのスピードアッ プにつながるには「sknd」が「しんねん」と読めるまでにならないといけな いのである。

azikのいいところはこれまで通りの普通のローマ字も受け付ける寛容さであ る。その気になればazik打ちにして高速化もできるという手軽さがよい。 ノーマルとazikの二刀流は簡単である。普通のローマ字で打った後でazikな らもっと簡単に打てることに気付き打ち直してみることが多い。それがいい 練習になっていると思う。パズル解きの感覚で使っていくことで上達するの ではなかろうか。ともかく日常的に使わないことには身につかない。

ただしノーマル打ちではヘンな仮名文字列になることがある。たとえばノー マルな「nipponn」がazikでは「にぽうおん」になる。これは「pp」に「ぽ う」が割り当てられているからである。オーッと、azikにしてたんだっけと 気付くことはごくたまにしかない。いったんazikにしたらノーマルに戻す気 にはならないと思う。不都合を感じることは殆どない。

azikを使うためには先ずその環境を作らなければならない。私がazikを知っ たのは日頃使っているテキストエディタmeadowの専用仮名漢字変換プログラ ムであるskkのマニュアルだった。skkをazik化するためのマクロである skk-azik.elはネット上で直ぐに見つかる。早速ダウンロードしてmeadowに 読み込ませる設定を.emcsに僅か二行書いただけで呆気なく使えるように なる。今迄通りのローマ字入力でも動く、どうってことはない、が第一印象 である。

普段のメモ書きにはテキストエディタのmeadowとvimを使う。内容がまと まったらhtml化してココログへアップロードする。ワードやエクセルが必要 なときはフリーのオープンオフィスを使う。秀丸エディタとサクラエディタ はテキストファイルビューアとして使う。これら四つのエディタを同時に起 動していることもある。ブラウザでネット検索しながら記事をエディタに抜 き書き(コピペ)するのが日課となっている。

meadowが一番よく使うエディタであったが最近はvimも結構と使うようにな る。テキストファイルの編集、とくにテキスト形式のデータに対する検索と か置換などの変更をする場合にvimが便利なのである。もともとは非対話式 にテキストファイルを加工するsedというスクリプト言語を対話式に使うス タイルをvimは備えている。そのsedが必要なほど大きなテキストファイルを 加工することは滅多にない。そのためsedのコマンドはすぐに分からなくな る。そこでvimを使っておればsedコマンドを忘れないですむと踏んだわけで ある。

そこでvimのskkもazik化したいと思いネットを検索すると情報が見つかる。 探せば見つかるものである。どの世界にも先覚者(またの名前は人柱(笑))は いる。meadowのskkをazik化したときはskk-azik.elというファイルをダウン ロードして所定の場所に置き、meadowの設定ファイル.emacsに二行の設定を 書くだけでよかった。そのためskk-azik.elの内容は殆ど見てない。これは エディタのマクロ(プログラム)であるからテキストファイルであり当然のこ とエディタで読める。

vimのskkをazik化する記事は、vimの設定ファイルに書き込むべきazik化の ための追加内容をそのままホームページ上にアップロードしたものである。 テキストファイルであり読むことができる。そしてそれはローマ字とそれに 対応する仮名文字データを羅列した一覧表にすぎないのである。

ここでハタと気付く。azikとはローマ字と仮名文字の対応を組み換えること であると。改めてskk-azik.elの中身を見るとその殆どを占めるのはローマ 字仮名変換表である。後ろのほうに何やら分からないlisp式が並んでいる。 ネット検索するうちに原作者が発表前にskk開発チームのメーリングリスト へ投げ掛けたものが見つかる。これらにより後半にある部分が何をしている ものかがおぼろ気ながらも分かる(ような気がした)。

skk-azik.elの作者によるskk-rom-kana-rule-listの原案が次にある。 「っ」で始まる送り仮名の処理に関する貴重な情報もある。

ローマ字と仮名の対応を一行に一個ずつ書くと600行くらいになる。これを vimの設定ファイルに書き加えるのは気が重い。そこで一つのファイルにま とめてskk-azik.vimとする。

ms-imeとかatokとかの仮名漢字変換を使っていたときは、それらにローマ字 と仮名の対応表が収納されていることをはっきりと意識してない。その証拠 に、打ち込みたい仮名に相当するローマ字のアルファベット文字列が分から ないときはネット検索して見つけた対応表を頼りにしていた。

そんな遠回りをしなくても目の前のパソコンの中を見るだけでよかった のである。私のパソコン(window me)にはマイクロソフトのmicrosoft ime 2000と、その昔に使っていて今も残してあるジャストシステムの一太郎に付 属するatokがある。

次のようにすればそれぞれのローマ字仮名対応表を見ることができる。いわ ゆる訓令式だからソフトによる違いは先ずないだろう。

キーボードのプロパティの言語タブからmicrosoft ime 2000を選びプロパ ティボタンを押す。そうするとmicrosoft ime 2000のプロパティのダイアロ グが出る。全般タブの設定ボタンを押すとmicrosoft ime 2000の詳細プロパ ティにローマ字設定がある。ここにローマ字一覧すなわちローマ字と仮名文 字の対応表がある。
キーボードのプロパティの言語タブからatok11を選びプロパティボタンを押 す。そうするとatok11プロパティのダイアログが開く。キー・ローマ字・色 タブにあるローマ字カスタマイズボタンを押す。ここにatok11ローマ字カス タマイズがある。

ms-imeとatokのどちらにしてもローマ字カスタマイズで自由に変更できる。 とは言っても日本語文字入力の根幹であるローマ字仮名変換テーブルをさわ る勇気はない。デフォルトに戻せなくなったらどうしようの不安がある。パ ソコン歴15年になるが、アー、ここにローマ字カスタマイズがあるんだな、 と覗いたことはあってもそれを変更するなんてことは一度も考えたことがな い。

もしローマ字仮名変換テーブルを変更してヘンなことになったとしもデフォ ルトに戻せる仕掛けはあるはずだが確信が持てない。その具体的な方法が分 からない。とても実験する気にはなれない。とくにそのパソコンに仮名漢字 変換がwindows付属のms-imeの一つしかないとなったらその気にならないな いだろう。別にatokでもあれば日本語入力できなくなる心配はないから幾分 気楽になれる。

azik方式にするべく間違えないように一字、一字のローマ字仮名対応を変更 してゆく労力を考えたら気が遠くなる。ノーマルとazik拡張を合せるとおよ そ600個所になる。仮名漢字変換のローマ字仮名対応表の収納エリアにそれ だけのキャパシティがなくてazik化を断念したという報告を見たことがあ る。

手作業による力技でやっつけられるものではない。先覚者の成果を有り難く 頂戴するのみである。vimのskkをazik化するにあたってはホームページに 載ったデータをそのまま使う。とにかく動くようにしなければならない。何 文字かは上手く出ないという程度ならまったく問題ない。修整すればよいの だから。全然受け付けてくれないがもっとも困る。

幸いなことにvimでのskk.vimのazik化はすぐ動いた。その後にskk-azik.el を参考にして微調整をする。悩んだのは「っ」の扱いである。これをゼミコ ロンに割り当てるのが元祖azikの流儀である。それ自体は簡単に設定でき る。問題は「っ」で送り仮名が始まる場合である。shiftを押しながらの 「;」では「+」が入力されるだけで送り仮名開始にならない。そこで skk_henkan_point_keysの末尾に「+」を加えたら「っ」で送り仮名開始する ようになった。(vimスクリプトの変数名にはハイフンが使えないのでアン ダーバーになる、ちょっとばかりややこしい)

なお、skk-azik.elではshiftを押しながらの「;」でちゃんと「っ」から始 まる送り仮名を処理してくれる。その設定がskk-azik.elのローマ字仮名変 換テーブルの下のほうにlisp式で書かれている。

これで常用エディタのmeadowとvimについてはそれぞれの専用の仮名漢字変 換であるskkをazik化できた。残るは秀丸やサクラエディタ用の仮名漢字変 換である。すでにノーマルなローマ字入力用のskkime98は入れてある。これ を何とかしてazikに出来ないだろうかとネット検索する。skkime98の後継で あるskkime1.0やskkime1.5にはazik化の報告がある。skkime98は古すぎるせ いか情報がない。

最初はキー入れ替えソフトを使うしかないなと思う。姫踊子草(ひめおどり こそう)ならazikを内蔵している。インストールして起動すればすぐに使え そうである。起動させなければ元のノーマルなローマ字入力に戻る。惜しむ らくはシェアウェアであることがある。azikを知る前に姫踊子草を早めにイ ンストールしたため、いざazikを試そうとしたときには使用期限切れだった という報告があった。

これまでにmeadowとvimで使うskkのazik化は既に終わっている。ここで skkime98のためだけに姫踊子草を入れると不都合が起こりそうな気がする。 常駐するソフトであるからmeadowやvimにも介入してくるのではなかろう か。そうするとskkime98を使うときは姫踊子草を生かして、meadowやvimを 使うときには殺さなければならない面倒を抱えることになる。

windowsソフト全般で動くms-imeやatokしか使っていないなら姫踊子草で キー入れ替えするのがもっとも簡単なローマ字入力のazik化法になるだろ う。azikが気にいらないなら姫踊子草を起動しないようにするとかアンイン ストールする、あるいはシェアウェアの送金をしなければ約3週間で姫踊子 草自体が起動しなくなるらしい。

曲がりなりに不完全ながらも一応skkime98を自前でazik化できたので姫踊 子草のインストールは止めた。

32ビット日本語版 Windows XP が主要動作対象となります。このほか、 Windows 95, 98, Me, 2000, Vista でも動作すると思われます。64ビット版 のWindows(特にVista)にも設置はできますが、32ビットアプリケーションに 対してのみ動作します。
シェアウェアです。試用期間は約3週間、1600円です。試用期間内なら動作 の制限はありません。

ネット上に情報がないのでskkime98はノーマルなままにするか、あるいは自 前でazik化するしかない。とりあえず、vimのskk.vimをazik化した方法を真 似てローマ字仮名変換テーブルさえ入れ換えればよいのではと思う。そこで 作業開始する。

先ずskkime98の設定ファイルである c:/windows/ime/skkime98/config/default.elを眺めてみる。内容はlisp式 で書かれている。skk-azik.elを参考にすればazik化できると思う。試行錯 誤の末に現在はskkime98でazikを使っている。

ところでskkime98のデフォルトでは「xt」と「xts」に「っ」を割り付けて いる。これは打ちにくいので「tt」に変更する。問題は「っ」で送り仮名を 開始にするにはどうすればよいかである。

試行錯誤の結果、送り仮名開始が「っ」である場合は「Tt」のように「っ」 を割り当てたローマ字文字列の最初の英字を大文字にすればよいことが分か る。指が滑って「TT」となっても表示が違うだけで深刻な不都合は発生しな いようである。

悩むことはなかった。「っ」を割り付けている「tt」の最初の文字を大文字 にするだけでよかった。入出力間の連系を見るだけでブラックボックスの中 身を解析しない無手勝流でねじふせている。傍(はた)から見る識者には笑わ れるだろう。思い付きを試して上手くいったあとでその理由を考えている。

元祖azikでは「tt」に特殊拡張の「たち」を割り当てている。特殊拡張は azikの根幹となる規則に基くものではなくて、使用頻度の多いものに割り付 けたユーザーが勝手に変更してよい領域にあるものである。この特殊拡張に は目をつむることにする。

もっともよく使うmeadowとvimがskkのazik方式であるために、同じ流派の skkime98を使うとき、それを未だazikにしてないのを忘れて、ついazik流に 打ってしまい、コレはazikでなかった!、と思うことがあった。とくにブラ ウザを使ったネット検索のキーワード入力ではskkime98を使うのでうろたえ ることが多かった。

同じazikとはいえmeadowのそれとvimのそれ、そしてskkime98のそれとでは 微妙にキー割り付けが異なる。meadowは元祖azikに忠実であり他の二つは skk寄りのキー割り付けになる。skk流に「q」はひらがなカタカナトグル キーとして「ん」を割り付けない。また「l」はアスキー仮名トグルとし て、「la」に「ぁ」を当てるなどをしない。

azikを止める(やめる→廃止、とめる→一時停止)のは簡単である。 skk-azik.elやskk-azik.vimを現在のディレクトリから他へ移すとかそれら を読み込まないように設定ファイルの記述を削除する。skkime98では設定 ファイルのdefault.elを変更前のものに差し替えればよい。

この記事はvim+skk+azikで書いています。azikの敷居は低いです。すぐに慣 れます。azikにしていることすら忘れるようになります。

| | コメント (1) | トラックバック (0)

« 2010年10月 | トップページ | 2010年12月 »