[C&C for Human Potential / NEC Corporation]

意外と便利!?(1) ローマ字かな変換と長音


 こんにちは、Canna の開発をしております今(こん)です。前回の mark 機能につづいて、 次は quoted-insert(^Q)を 「こんなの使っている人いるの?」の第2弾として持って来ようと 思ったのですが、 Cannaメーリングリストで議論を行っている時に、私みずから 「そういうときは quoted-insert という機能があり、それを使うんですよ」と お答えしてしまったので、その構想はあえなくボツになってしまったのでした。

 そういうわけで、今回は趣向を変えまして「こんな機能があって、 結構便利なんだけど、使ってます?」というお話しをいたしましょう (開きなおり?)。

 映えある第一回は「ローマ字かな変換と長音」です。

 話の発端はとあるメーリングリストでのたあいもない会話です。 そのメーリングリストで、自分は長音記号(ー)とハイフン(−)について 以下のような発言をしました。

     「最近長音記号をハイフンのように 利用している人多いよね。そういうものなのかなぁ?」
 すると、Tさんから、以下のようなお返事をいただきました。
     自分は数字の後ろに 『-』や 『.』が来た時だけ『ー』や『。』じゃなくて、 『−』や『.』を利用するようにしているよ。Canna のローマ字かな変換テーブル を使えばできるよね。でも、できれば、「ひらがなの後ろに来た時だけ 『ー』や『。』になるようにできれば良いんだけどね。
 な〜るほど!です。 defsymbol などの機能で、『-』の入力に対して『ー』や『−』 をスイッチさせることはできますが、 defsymbolがいくらローマ字かな変換レベル でこれをやってくれようが「スイッチさせる」作業は必要です。でもTさんのように 「ひらがなの後ろだけ長音にする」とかできればスイッチ作業もいらなくなり 自動的にハイフンが長音になったりするわけです。
 さて、そのような要望を満たすように Canna のローマ字 かな変換テーブルを作ってみました。左図にその一部を示します。

 左図のテーブルでは一行が一つのローマ字かな変換定義に対応しています。 「入力」「表示」「残り」の各列は、「入力」がキーボードから入力された キー、「表示」がそれが変換されて得られる文字を示しています。例えば、 図の下の方では『z>』と入力することにより全角不等号『>』が入力されることが 記述されています。

 表中「残り」というのはローマ字かな変換で余った残りを表します。 例えば、図中、上から6つ目のルールでは、『zz』が入力されたときに ちいさい『っ』に変換して、さらに残りとして『z』を余すという ことが記述されています。このルールはかなり万能です。例えば、 『あっち』と入力するのに『atchi』と入力しても良いようにしたければ、

    tch っ ch

のようなルールを記述しておけばいいのです。

 このローマ字かな変換ルールをベースに色々と定義を加えていくと 「ひらがなの後ろに来た時 だけ『ー』や『。』になるように」することができるのです。

 それには、例えば『a』が入力されたときに、「『a』は何にも変換されず、 『あ』という文字を入力の余りとして残す」というルールを追加すれば良いのです。

 説明が下手なので良く分かりませんね。 話を簡単にするために、入力としては『a』と『-』しか存在せず、 『a』は最終的には『あ』に変換され、『-』は前が 『あ』かそうじゃないかによって『ー』か『−』に変換されるというルールを 作ってみましょう。


 その例が左図です。『a』の入力は何の文字も確定させずとりあえず 『あ』を余った文字としてペンディングしておくだけです。 『あ』がペンディング している状態で『-』が入力されたときは、『-』を長音『ー』とし『あ』 とあわせて『あー』を結果として得るようにします。 単独で『-( 半角ハイフン )』が入力されたときは長音記号とはせず全角ハイフン (半角でも構いませんが)にするわけです。

 最初の自分のメールでは長音記号以外にも、以下のような問題提起も しました。

    句点をピリオドのように使う人も。。。。(←その例)
 句点をピリオドみたいに使う方もちらほらと見受けられます。 こちらの例も同様の手法で解決が可能で、「単独で『.』 を打った時は読点(。)だけど、複数来たら全角ピリオド(.)にする」 なんて定義ができます。

 せっかくですので長音および句点問題を自動で解決する ローマ字かな変換テーブルを ここ に置いておきます。 Canna for Windows 95 をご利用の方はこのテキストを SJIS に落して .txt 拡張子を付け、 Canna for Windows 95添付の ローマ字かな変換エディタで読み込んでさらにバイナリ形式でセーブすることで 利用することができます。 UNIX 版 Cannaをご利用の方は EUC ファイルに 落とし mkromdic コマンドでバイナリに変換し利用することができます。 なお、それぞれ、このローマ字かな変換ルールを利用する時は、 「ローマ字かな変換単位の移動」は「しない」にしておいた方が良いです。

 今回の機能は開発者(つまり私ですね)も気が付かなかった使い方で 私自身、 「お〜、こんなこともできるんだ」と感動しています(ありがとう、Tさん)。 皆さんも是非一度お試しください。


1996.12.5 今昭記

「かんな」ホームページに戻る



[Copyright(C) NEC Corporation 1996. NEC and C&C are trademarks of NEC Corporation.]