T-Codeドライバマニュアル

Edition 2.1 1997 年 8 月

前田薫 maeda@src.ricoh.co.jp
斎藤靖 yasushi@cs.washington.edu
北嶋暁 kitajima@ics.es.osaka-u.ac.jp

1 T-Code とは

『T-Code』は東京大学理学部情報科学科山田研究室で開発された『無連想 2 ストローク漢字入力方式』です。ここでは、 T-Code について、 NEmacs/Mule 版 T-Code 入力マクロ ‘tc.el’ を使用するにあたって必要最小限の紹介をします。

1.1 2 ストローク入力とは

漢字入力は現在「かな漢字変換入力」が主流であると思われます。しかし、かな漢字変換は判断を必要とする作業であり、大量の文書を入力するのには向きません。

『2 ストローク入力』はキー二打鍵の組み合わせで漢字一文字を表すことによって漢字入力を行う入力方式です。キーボードから直接漢字を入力できるので、変換の必要はありません。キーの二打鍵で常に一つの文字を入力することになるので、文章の入力はリズムをくずすことなく行えます。

■ただし、 2 ストロークで表せる文字の種類には限りがあります。 2 ストロークで直接入力できない文字のことを T-Code では『外字』と呼びます。外字の入力にはかな漢字変換を使うこともあります。 Nemacs/Mule 用の T-Code ドライバでは、外字入力用に、部首変換 (3.2 節「部首変換」 p.7 参照) ・交ぜ書き変換 (3.3 節「交ぜ書き変換」 p.9 参照) ・ JIS コード表 (第 3 章「T-Code を使う」 p.6 参照) などの補助入力手段を提供しています。□

漢字に対するキーの割り当てには『連想式』と『無連想式』があります。連想式というのはキーの組み合わせと文字の間に連想があるものを言います。たとえば「トキ」で「時」を表すなどの方法です。一方無連想式というのはそれらの間に連想関係がないものを言います。

一般に連想式は習熟にかかる時間は短くてすみますが、ある程度上達してしまうと打鍵速度が上がらなくなります。その理由は文字と打鍵位置の間に関係があるために入力が思考によって邪魔されてしまうためと、もともと入力する時のことは考えられていないために『awkward sequence』 (複雑な指の運びを強いられる打鍵列のこと) が多くなり指に負担がかかってしまうためです。

無連想式では入力時の awkward sequence が小さくなるように打鍵位置を決められるため、習熟すればするだけいくらでも速く入力できるようになります。しかも変に思考に邪魔されることがないため、英文タイピストのようにおしゃべりをしながら文書の入力ができるようになるといわれています。そのかわり打鍵位置を覚えるまでは、何の手がかりもないのですから長い時間をかけてひたすら覚えることになります。

2 ストローク入力法式はたとえば手書きの文書を計算機に入力する時に最大の効果が期待できます。目から入ってきた文字を言語中枢を経由することなく手で打つことができるからです。しかし、頭で考えながら文章を入力するときには必ずしも最善の方法ではないかもしれません。

1.2 T-Code で使用するキーボード

T-Code では片手あたり 5 列 4 段 20 個、計 40 個のキーを使います。 40 個のキーを二打鍵することで一文字の入力を行います。人指し指は 2 列分を受け持ちます。 T-Code では 40 個のキーの二打鍵、計 1600 通りの打鍵位置のうち現在約 1300 に文字を割り当てています。新聞などの記事を入力する際には、入力するべき文字の約 95–98%が T-Code の二打鍵で入力できるといわれています。

普通のキーボードで T-Code を利用する場合、次の図のような配列を用います。このマニュアルでは、いわゆる QWERTY 配列のキーボードを想定しています。以降の説明でも、特に断らない場合はこの配列に基づき説明します。なお、 T-Code ドライバでは、 Dvorak 配列用などにカスタマイズすることができます ( 4.4.2 節

「入力文字と仮想鍵盤との対応」 p.24 参照)。実際のキーボードでは、キーは下図のような長方形ではなく、一

列毎にずれた配列になっていますが、そこはがまんして使うことにします。

左手用右手用

1 2 3 4 5      6 7 8 9 0
Q W E R T      Y U I O P
A S D F G      H J K L ;
Z X C V B      N M , . /

■ T-Code 専用のキーボードも存在します。 T-Code 用のキーボードを見ると、その第一印象は真っ白なことです。真っ白なのはキートップに書くべき情報が何もないことから納得できます。次にもっとよく見るとキーが長方形に並んでいることに気づきます。キーの配置が長方形だというのは、「上段が左に、下段が右にずれて」いないということです。タイプライターに由来するこの「ずれ」は電子化された今のキーボードには必要ないからです。□

1.3 ストローク表の見方

T-Code の打鍵位置の割り当てを表にまとめたものが『ストローク表』です。 T-Code ドライバ上で 11, 10,

01, 00 を入力すればこの表を表示させることができます (第 3 章「T-Code を使う」 p.6 参照)。この表は大き

く四つの部分に分かれています。それぞれ、 5 × 4 の文字の長方形が 5 × 4 個並んでいます。そのうちの一つ

を見てみましょう。

RL

■■■■＊■■■■■■■■■■■■■■■■■■■■ 請境系探象尚賀岸責漁舎喜幹丘糖布苦圧恵固姿絶密秘押盛革突温捕益援周域荒康徒景処ぜ邦舞雑漢緊衆節杉肉除依繊借須訳織父枚乱香譲ヘ模降走激干彦均又測血散笑弁

酸昼炭稲湯貿捜異隣旧攻焼闘奈夕盤帯易速拡汽換延雪互歩回務島開キせ区百木や出タ手保コ山者発立ナ金マ和女給員ど代レ分よル千ア７か（トれきっ日国二上く８え年相家的対歴付プばュ作内工八テ見九名川機チサ建パ第入

桜瀬鳥催障典博筋忠乳採謡希仏察君純副盟標犯余堀肩療中スもお定わラ東生ろう４）十リあこ６学月本さら高シ３と〇てるーした一がい、の５１。＊０・２ではになをッ人三京ちロク万方フんまンつ四けイす電地業時「長み

呼幅歓功盗紀破郡抗幡房績識属衣去疑ぢ綿離秒範核影麻店持町所ほ全じ自議明バ部六経動後間場ニ産問ム七住北行ド円小ジ通カ社野同だり―め大新」９子五事田会前そ海道ず西げ当理メウグ不合面政オ委化ビ目市気売下都株

表の左上に ‘RL’ と書いてあるのは、この表が一打鍵目は右手、二打鍵目は左手で打つ文字の表であることを

示しています。小さなブロック内での文字の位置が一打鍵目の打鍵位置を、そのブロックが全体の中でどこに

あるかが二打鍵目の打鍵位置を表しています。たとえば ‘円’ という字は左下のブロックの中にあり、その中で中央中段にありますから、一打鍵目は右手中指のホーム・ポジション、二打鍵目は左手小指の下段 (Z のキー) ということになります。この表現形式を『木を見て森を見る方式』と評した人がいます。

この表の中で ‘■’ で表された打鍵位置には現在文字が割り当てられていません。また、 ‘*’ で表された打鍵位置は、機能または 3 ストローク以上のキーストロークを表しており、文字は割り当てられていません。ここで、機能とは、たとえば部首変換入力 (3.2 節「部首変換」 p.7 参照)、交ぜ書き変換入力 (3.3 節「交ぜ書き変換」 p.9 参照) の開始などを指します。また、 3 ストローク以上のキーストロークは TUT-Code (第 5 章「TUT-Code で入力するには」 p.30 参照) で使用します。

1.4 T-Code 情報の入手方法

T-Code メーリングリスト

T-Code のメーリングリストが運営されています。 T-Code に興味を持つ人であれば、誰でも入会できます。

内容、あるいは参加方法について知りたい人は、 tcode-ml@is.s.u-tokyo.ac.jp 宛に# guide という内容の

メールを送ってください。下はその例です。

      % echo '# guide' | mail tcode-ml@is.s.u-tokyo.ac.jp
  ニフティサーブからメーリングリストに参加したい場合には、 INET:tcode-ml@is.s.u-tokyo.ac.jp あて

に# guide の 1 行からなるメールを送ってください。

ニフティサーブ

ニフティサーブの FKBOARD では、 T-Code 等の直接入力方式に関する会議室が開かれています。この会議室の最初の方には直接入力入門者のための非常に分かりやすい説明が多数登録されています。

また、次の Patio が直接入力に関するものです。

1. ID: NBH00475 (情報のやりとり)

    管理人: かぜはるか (email: nbh00475@nifterserve.or.jp)

2. ID: GGB03565 (関連データの登録)

    管理人: m(as)m (email: ggb03565@nifterserve.or.jp)

いちおうクローズドな形態になっていますので、参加を希望する方は、それぞれの管理人にメールして下さい。 Password を教えてくれます。

T-Code ソフトウェアの入手方法

ここで解説している ‘tc.el’、および他のソフトウェアはすべて下記の FTP サイトから入手できます。

      ftp.s.u-tokyo.ac.jp:tcode/

ftp.s.u-tokyo.ac.jp の IP アドレスは 133.11.11.11 です。

2 インストール

2.1 パッケージの内容

NEmacs/Mule 用 T-Code ドライバパッケージは次の内容より成ります。

NEmacs/Mule 用のマクロファイル, および補助ファイル群 T-Code で使用する Emacs Lisp のファイルは以下のとおりです。

‘tc.el’ T-Code ドライバ主要部

‘tc-sysdep.el’

Emacs バージョン依存吸収部

‘tc-setup.el’

初期設定部

‘tc-bushu.el’

部首変換部

‘tc-mazegaki.el’

交ぜ書き変換部

‘tc-help.el’

ヘルプ部

‘tc-util.el’

補助機能部

‘tc-is18.el’
‘tc-is19.el’

インクリメンタルサーチ部

‘tc-tbl.el’
‘tutc-tbl.el’

文字表定義部

T-Code 漢字表印刷キット Tchart JIS の各漢字について、それを T-Code でどのように入力すればよいのかを示す表を作成するキットです。 Tchart のファイルは ‘tchart’ ディレクトリの下にあります。この表の印刷には、 TEX と、 METAFONT が必要です (300dpi のプリンタを使う場合には、 METAFONT は必要ありません)。 6.1 節「Tchart: T-Code 表を印刷する」 p.31 を参照してください。

NEmacs/Mule 用の T-Code 練習キット EELLL EELLL (うなぎぎぎ) は、 NEmacs/Mule を使って T-Code を練習するためのプログラムです。 6.3 節「T-Code 練習プログラム EELLL」 p.31 を参照してください。交ぜ書き変換辞書作成キット

自分の T-Code 習熟度に合わせて交ぜ書き変換辞書を作成するためのキットです。交ぜ書き変換とは、 T-Code を使った一種のかな漢字変換です (3.3 節「交ぜ書き変換」 p.9 参照)。辞書作成キットは ‘mazegaki’ ディレクトリの下にあります。 6.5 節「交ぜ書き変換辞書の作成」 p.32 を参照してください。

kinput2 用 T-Code キット kinput2 で T-Code 入力をするためのキットです。文字入力のデータを ‘tc.el’ の文字表データを元に生成します。 6.6 節「kinput2 を利用するには」 p.34 を参照してください。

2.2 インストールの方法

‘INSTALL’ ファイルにすべて書いてあります。基本的には、 Configure というプログラムを起動して、あとはその指示に従うだけです。

交ぜ書き変換辞書は別途作成するようになっています。作成法については、 6.5 節「交ぜ書き変換辞書の作成」 p.32 を参照してください。

3 T-Code を使う

3.1 使用法

C-\ (tcode-mode がマップされているキー、 4.4.1 節「T-Code モード切り替えキーの変更」 p.24 参照) で、 T-Code を入力するモードに入ります。モード行が ‘[TC]’ と変わります。

この状態で、たとえば jg と打つと、 ‘は’ が挿入されます。二打鍵目にスペースを入力すると一打鍵目の文字がそのまま挿入されます。英小文字を少しだけ挿入したい場合に便利です。また、シフトキーを押しながら英字を入力すると、その英字の小文字が直ちに挿入されます。たとえば、 A と入力すると、 ‘a’ が挿入されます。

一打鍵目を打った直後にその一打鍵目を取り消すには、 DEL を入力します。

NEmacs/Mule のコマンド引数も使用できます。文字を挿入するストロークの前に C-u と入力すれば、次に入力した文字が二つ挿入されます (挿入される文字の数が非 T-Code モードの場合と異なります)。整数を指定した場合 (C-u 3 など) はその数だけ挿入されます。

もう一度 C-\を打つと、非 T-Code モードに戻ります。

ミニバッファでも、 C-\を入力することで、 T-Code を使うことができます。ミニバッファで T-Code モードになっているときは、ミニバッファの左端に ‘[TC]’ と表示されます。

T-Code モードでは、 2 ストロークで漢字を入力する以外に、いろいろな機能が用意されています。これらの機能は、 T-Code コード表の空の所に割り当てられています。次に列挙します。

jf 前置型の部首変換を開始します (3.2 節「部首変換」 p.7 参照)。

           ただし、変数 tc-use-postfix-bushu-as-default を t にすると、 77 と jf の機能が入れ換わ

ります。

fj 交ぜ書き変換を行います (3.3 節「交ぜ書き変換」 p.9 参照)。

55 現在のカーソル位置にある文字の打ち方 (ヘルプ表) を表示します (3.5 節「様々なヘルプ機能」 p.15 参照)。

44 直前に入力した文字の打ち方 (ヘルプ表) を 55 と同様に表示します。

11 ‘LL’ (第 1 ストローク:左、第 2 ストローク:左) のストローク表 (1.3 節「ストローク表の見方」 p.2 参照) を表示します。なお、ストローク表を表示するためのキーストロークは、 1 が左、 0 が右に対応しています (最上段の、 T-Code で用いるキーの左端と右端)。

10 ‘LR’ (第 1 ストローク:左、第 2 ストローク:右) のストローク表を表示します。

01 ‘RL’ (第 1 ストローク:右、第 2 ストローク:左) のストローク表を表示します。

00 ‘RR’ (第 1 ストローク:右、第 2 ストローク:右) のストローク表を表示します。

32 句読点セットを「、。」と「, . 」の間で切り替えます。デフォルトは「、。」です。変数 tcodeswitch-table-list を使うと、自分の好みの句読点セットを利用することもできます (4.5 節「個人用設定ファイルの見本」 p.27 参照)。

77 カーソル直前の二文字を部首変換によって合成した文字で置きかえます (3.2 節「部首変換」 p.7 参照)。 jf が前置型の部首変換であるのに対して、 77 は後置型の部首変換です。 88 現在のカーソル位置にある文字を、一打鍵目と二打鍵目を入れかえて打ったときの文字で置きか

えます。たとえば、 ‘味’ の上にカーソルを置いて 88 を打てば、 ‘味’ が ‘の’ に変わります。行末にカーソルがある場合には、その直前の文字に対してこの処理を行います。

99 現在実行途中の部首変換・交ぜ書き変換を中断します。また、ヘルプ用のウインドウを消します。

22 別バッファ(*jis-code*) に JIS の全文字をコード順に表示します。このバッファ上で適当な文字の上にカーソルを合わせて RET を押すと、その文字が、直前にいたバッファに挿入されます。 q を押すと、直前にいたバッファに戻ります。

なお、 T-Code モードで?を押すと、以上の、キーと機能との関係の要約が表示されます。

3.2 部首変換

外字を入力するための補助入力機構の一つに部首変換があります。

3.2.1 部首変換とは

外字の入力をするのに、 T-Code に割り当てられている文字の部首を組み合わせる方法があります。これを『部首変換』と呼んでいます。

T-Code の部首変換で使用する部首は、実際には漢和辞典にのっている部首ほど正確ではなく、文字の形を元にかなりいいかげんにできています。以下に主な部首を代表する文字を示します。

ア、院→こざとへん イ→にんべん ウ→うかんむりエ→工 オ→てへん サ→くさがんむりシ→さんずい ヌ→又 ネ→しめすへんリ→りっとう レ→礼のつくり ロ→口 (くち) ワ→わかんむり ン→にすい 部→おおざと性→りっしんべん 独→けものへん 四→あみがしら図→くにがまえ え、之→しんにょう

これらの文字だけでなく、部首を構成要素として含んでいる文字で代用することもできます。以下に、部首変換のいくつかの例を示します。

ロ + ル→兄日 + 生→星シ + 談→淡重 + 点→薫病 + 波→疲図 + 木→困国 + 木→椢頭 + 川→順石 + 白→碧言 + 売→読ア + 良→限水 + う→永

知 + 上 = 矢 + 上→↑情 + 語 = 青 + 言→請性 + 語→悟

また、部首の引き算もできます。

頭 - 豆→頁 例 - イ→列 列 - リ→歹 麻 - 木→床

 (頭 = 豆 + 頁)  (例 = イ + 列)  (列 = 歹 + リ)  (麻 = 床 + 木)

いくつかの記号は、意味を表す文字で入力します。

た + す→＋ひ + く→−か + け→×わ + る→÷ 等 + 号→＝不 + 等→≠矢 + 上→↑、 + 、→、二文字の組み合わせで入力できない文字は、三文字以上の組み合わせで入力できる場合があります。

劇 = (七 + 上→虍) + リ龍 = (立 + 月→襲) + 製

まれに組み合わされる二文字の順序が関係ある場合があります。

門 + オ→閉オ + 門→捫足 + 戔→践戔 + 足→踐

部首変換は部首変換辞書に基づき行われます ( 3.2.3 節「部首変換辞書」 p.9 参照)。 ‘tc.el’ での部首変換アルゴリズムはちょっと変わっています。実際にどの文字が入力されるのかは、一般に組み合わせる二文字を打鍵してみるまでわかりません。

3.2.2 ‘tc.el’ での部首変換

T-Code モードで jf と打つと部首変換モードに入ります。画面には ‘▲’ と表示されます。この状態で、 T-Code 文字を二つ入力すると、その 2 文字を合成してできる文字にそれらが置きかえられます。合成してできる文字がないと、 beep 音がなります。

部首変換は再帰的に使うこともできます。たとえば、 ‘劇 [(七+上→虍)+リ]’ という文字を入力したい時には、

キー画面
jf   (部首変換に入る)  ▲
jf   (さらに部首変換に入る)  ▲▲

ib   (七)  ▲▲七
ht   (上)  ▲虍
pd   (リ)  劇

のようにして入力することができます。

また、 T-Code モードで 77 と打つと、カーソルの直前の 2 文字を合成して、その 2 文字を合成結果の文字に置きかえます (後置型部首変換)。こちらの方が分かりやすいかもしれません。

キー画面

ib   (七)  七
ht   (上)  七上
77   (合成)  虍
pd   (リ)  虍リ
77   (合成)  劇

■あまりに複雑な合成が必要な文字については交ぜ書き変換を使う方がよいでしょう (3.3 節「交ぜ書き変換」 p.9 参照)。□

部首変換辞書の初期化 (辞書の読み出し) は時間がかかるため、必要となるまで初期化を行わないようにしたいと思うかもしれません。 NEmacs/Mule の変数 tcode-bushu-on-demand を 0 以外の値に設定すると、その値に応じて辞書初期化のタイミングが変わります。 4.2 節「ユーザ変数」 p.20 を参照してください。

辞書の初期化がされないうちは部首変換は使用できません。

3.2.3 部首変換辞書

部首変換辞書 ‘bushu.dic’ には、一行に一文字分のエントリがあります。

たす＋

上の行は、 ‘た’ と ‘す’ の 2 文字を合成すると、 ‘＋’ という文字が合成されることを意味します。

N 院ア

上のように、最初の文字が ‘N’ で始まる場合、その次の文字と次の次の文字は等価である、ということを定義しています。つまり、 ‘院’ はこざとへんを代表する文字ですが、 ‘院’ の代わりに ‘ア’ を使っても、こざとへんを入力できるのです。ここで、 ‘院’ と ‘ア’ の順番に注意してください。 ‘N’ の直後にくる文字の方が代表する文字です。

部首変換辞書への登録や削除は ‘bushu.dic’ を編集することにより行います。ここで、辞書は EUC コードでソートされていなければなりません。登録したときは、忘れずにソートしてください。

  ‘bushu.dic’ を書き変えた場合には C-u M-x tcode-read-bushu-dictionary を行ってください。なお、

‘bushu.rev’ というファイルが自動的に生成されます。このファイルはユーザが直接編集するものではありません。

3.3 交ぜ書き変換

T-Code で外字を入力するには、部首変換のほかに交ぜ書き変換という方法もあります。

3.3.1 交ぜ書き変換とは

T-Code を使って熟語変換のようなことをすることも考えられます。この場合、 T-Code で入力できる文字を直接入力することで同音異義語が減り、通常のかな漢字変換よりも効率のよい変換をすることができます。

き社のき者がき車でき社したき社→帰社、貴社き者→記者き車→汽車

このような変換を、読みとして漢字とひらがなを交ぜ書きして指定できることから、『交ぜ書き変換』と呼びます^{1}。

交ぜ書き変換では、接頭語・接尾語は T-Code で入力できることが多いのでいちいち接頭語つきの複合語として辞書に登録する必要はありません。そのかわり、一つの単語について「読み」の組み合わせが増えるため、辞書が大きくなってしまいます。

郵便 ゆうびん、ゆう便、郵びん

方程式 ほうていしき、方ていしき、ほう程しき、ほうてい式、方程しき、方てい式、ほう程式

このため、 T-Code の習熟度に応じて、確実に覚えた文字 (かなで入力されることはない) と覚えていない文字 (漢字で入力されることはない) をもとに、辞書を小さくする工夫が必要となります。 6.5.2 節「交ぜ書き変換辞書の作り方」 p.32 を参照してください。また、 3.3.5.2 節「交ぜ書き変換辞書からの削除」 p.14 を参照してください。 1 読みをひらがなだけで指定した場合でも、ここでは交ぜ書き変換と読んでいます。「交ぜ書きが可能な変換」

というくらいの意味です。

3.3.2 tc.el での交ぜ書き変換—後置型

‘tc.el’ 標準の交ぜ書き変換は、この「後置型」です。この後置型交ぜ書き変換では、変換の前に特にモードに入ることなく適当に読みを入力して、最後に fj と

打つと、カーソル直前の文字列の中で辞書に登録されている最も長い読みを使って (いわゆる最長一致) 漢字変換が行われます。

3.3.2.1 候補の選択法

候補の選択法は、入力した読みに対する辞書中の候補の数によって異なります。

読みに対し、候補が一つの場合その候補に変換されますので、その候補を選択するためには、次の入力を始めるか、または RET により明示的にその候補を確定します。なお、前置型の変換 ( 3.3.3 節「‘tc.el’ での交ぜ書き変換—前置型」 p.13 参照) で、活用する語の変換をしないように設定している場合 (4.2 節「ユーザ変数」 p.20 参照) は、自動的に確定します。

候補が 10 個までの場合たとえば、「かん定 fj」 (後置型の場合) と入力すると、ミニバッファに一覧が次のように表示されます。

      [- - 鑑定 -] -  - [- 勘定 - -]

これは、 T-Code で使用するキーの、上から三段目を表しています。候補を選択するときは、選びたい候補に対応しているキーを押します。上の例では、「鑑定」を選択したいときは、 T-Code で使用するキーの、上から三段目、左から三番目のキー (D のキー) を押します。

候補が 10 個を超える場合たとえば、「こう fj」と入力すると、ウインドウに次のように表示されます。

       -    -    -    -     -         -     -    -    -    -

[坑勾佼候 ] 后厚 [ 侯仰倖喉] [興袷逅膠 ] 鈎黄 [ 淆項肛恰] [弘巷孔宏 ] 庚幸 [ 孝垢巧康] (1/3)

この表は T-Code で使用するキーを表しています。候補を選択するときは、選びたい候補に対応しているキーを押します。表の右端の ‘(1/3)’ は、候補の数が表三つ分あり、その表のうちの 1 番目を表示していることを示しています。表を切り替えるには、次の表に切り替える場合は SPC を、前の表に切り替える場合は DEL を押します。

確定前の状態 (交ぜ書き変換候補選択モード) で利用可能なキーは次のとおりです。

SPC 次の表または候補を表示する。

DEL 前の表を表示する。 RET 候補を確定して、候補選択モードを抜ける。

> 読みを伸ばす。

< 読みを縮める。

C-u 候補を読みの状態にもどして、候補選択モードを抜ける。

| 漢字を登録して、その後変換する。

! 現在の読みの漢字を (一つ選んで) 削除する。

上に挙げた以外のキーを入力すると、現在の候補を確定して、候補選択モードを抜けた後、入力されたキーを再実行します。

候補の先頭 4 個を超えた候補を確定すると、その候補は 5 番目の候補になり、次回の出現順 (一覧表での並び方) が変わります (先頭 4 個の候補の出現順には影響を与えません)。一方、候補の先頭 4 個までを確定したときは、次回同じ読みを変換しても、その出現順は変わりません。候補入れ替えの対象とならない候補の数は、

変数 tcode-mazegaki-gakusyu-kouho-offset で指定できます (4.2 節「ユーザ変数」 p.20 参照)。

3.3.2.2 活用する語に対する変換候補の検索法

交ぜ書き変換モジュールでは、活用する語に対する変換候補の検索は、文法の情報を用いず、パターンマッチングのみにより行います。辞書には、読みとして、たとえば「ながめ―」のように、語幹 ‘ながめ’ と活用する語であることの印 ‘―’ をつなげたものを登録します^{2}。

パターンマッチングによる変換は次のように行われます。たとえば、「ながめて」と入力して変換した場合には、「ながめ」と「て」とに分割すれば「ながめ」が辞書の読みの「ながめ」と一致しますので、「ながめ」の部分を「眺め」にし、語尾「て」をつなげたものに変換します。

パターンマッチングのみによる変換の問題点としては、文法に合わない語尾でも変換候補になることが挙げられます。この問題点に対し、交ぜ書き変換モジュールでは、「人が選ぶので、おかしな候補があってもよい」という立場で、これ以上の自動的な候補削減を行わないことにしています。

逆に、パターンマッチングのみによる変換の長所は、古文や方言に柔軟に対応できることです。

3.3.2.3 活用する語を変換する際の注意点

活用する語は、以下の各項目に注意すれば、活用しない語と同様に変換できます。

• 活用しない語と活用する語は、異なる読みとして扱われます。たとえば、「葵」と「蒼い」は、両方とも読み方は「あおい」ですが、「葵」は活用しない語、「蒼い」は活用する語です。ですから、変換の際に表示される読みの一覧の中に、これらの候補が同時に現れることはありません ( 「蒼い」が活用しない語として登録されている場合を除く)。

2 現時点では、活用する語はすべてユーザが新たに登録する必要があります。活用する語も、終止形で、活用しないものとして登録されているからです。 • 活用しない語は、通常、活用する語よりも優先されます。

上の「あおい」の例では、まず「葵」が表示され、読みを縮める (> を入力する) と、活用しない語として読みを縮めて区切り直します。つまり、この場合では、読みを縮めていくと、「おい」、「い」の順に活用しない語の候補一覧が (もしあれば) 表示されます。その後、更に読みを縮める^{3}と、読みを、活用する語として区切り直し、「蒼い」が候補となります。活用する語であることを明示して変換すれば、活用する語である「蒼い」をすぐに選択できるようになります。これは、 fj の代わりに 58 (または C-u fj) を入力することにより行えます。

• 活用する語の区切り直しは、語幹の長さに基づいて行われます。活用する語は『語幹』と『語尾』に分かれますが、区切り直しは、縮める方向の場合では、語幹の長い候補が優先され、また、その中で語尾の長い候補が優先されます。

• 活用語尾にはひらがな・カタカナしか使えません。たとえば、読み「お―」・漢字「押」が登録されていても、「押し通す」を入力しようとして、「おし通す」という読みで変換することはできません。この場合は、「おし」という読みで変換し、その後、「通す」を入力してください (または、「おし通―」という読みを登録してください)。

3.3.2.4 文字数を指定した交ぜ書き変換

以下のキーストロークにより、後置型で変換対象 (読み) の文字数を指定して交ぜ書き変換ができます。

活用しない語

キーストローク読みの長さ

                  18          1
                  28          2
                  38          3
                  48          4

活用する語

キーストローク読みの長さ

                  29          2
                  39          3
                  49          4
                  59          5

ここで、活用する語の読みの長さには、活用語尾の長さも含みます。また、 fj のコマンド引数として文字数を指定することができます。 C-u fj の場合は活用する語 (長さは自

由)、正の整数 (たとえば C-u 3 fj) の場合は活用しない語で文字数を指定、負の整数 (たとえば C-u - 3 fj) の場合は活用する語で文字数を指定、というようになっています。

文字数を指定した場合、活用しない語では、指定した読みに対し候補が一つしかない場合は、変換後ただちに確定します。

3 『縮める』という語を使っていますが、この例のように、実際には長くなることもあります。

3.3.3 ‘tc.el’ での交ぜ書き変換—前置型

変数 tcode-use-prefix-mazegaki を t にすると、前置型の交ぜ書き変換を使うことができます。 T-Code モードで fj と打つと『交ぜ書き入力モード』に入ります。このモードから抜けるときは、 99 を押します。このモードで読みを入力し、 SPC を押すと、交ぜ書き変換候補選択モードに入ります。候補選択の方法は後置型の場合と同じです ( 3.3.2.1 節「候補の選択法」 p.10 参照)。

3.3.4 読みの補完

交ぜ書き変換辞書の読みから、入力途中の文字列を補完する (未入力の部分を補う) ことができます。「読み」といっても、交ぜ書きですから、すべて漢字でも構いませんし、カタカナでも英単語でも構いません。

使用法を例で説明します。ここでは、辞書に読み「アルゴリズム」、漢字「アルゴリズム」が登録してあるとします。

「アル」と入力し、 =を押すと、「アル」で始まる読みが他にない場合では、「アルゴリズム」と補完され、その読みで変換されます。また、「アルゴリズム」の他に「アルゴン」という読みがあった場合では、「アルゴ」まで補完され、ミニバッファに

アルゴ{リズム, ン}

と表示されます。 ‘{}’ の中が候補です。この候補に対し、次の操作ができます。

SPC 次の候補を先頭へ

DEL 最後の候補を先頭へ

=
TAB

LFD 先頭の候補を選択し、それを読みとして交ぜ書き変換

RET 補完をそこまでで中断

ただし、補完機能は交ぜ書き変換辞書の読みの向きが正順でなければ利用できません (4.2 節「ユーザ変数」 p.20 参照)。

3.3.5 交ぜ書き変換辞書の管理

交ぜ書き変換辞書への漢字の登録および辞書からの削除の方法を説明します。

3.3.5.1 交ぜ書き変換辞書への登録

交ぜ書き変換辞書への登録の方法には、一つの漢字を登録する場合と、複数の漢字をまとめて登録する場合の 2 通りあります。一つの漢字を登録する場合

T-Code モードで|を押します。その後、読み・漢字を順に入力していけば登録できます。ここで、交ぜ書き変換の場合、同じ漢字に対して複数の読みを登録したい場合があります。たとえば、「春夏秋冬」という漢字に対して、「春」だけ入力法を知っている場合には、「春夏秋とう」「春夏しゅう冬」「春夏しゅうとう」「春か秋冬」「春か秋とう」「春かしゅう冬」「春かしゅうとう」という 7 通りの読みがあります。これは、読みを「春/か/しゅう/とう」、漢字を「春/夏/秋/冬」と入力することで、一度に登録できます。

複数の漢字を登録する場合まず、次の形式のデータを用意します。

読み 1 /漢字 1-1/漢字 1-2/…/漢字 1-m/

       :

読み n /漢字 n-1/漢字 n-2/…/漢字 n-l/

次に、このデータがあるバッファ上で M-x tcode-mazegaki-ikkatu-toroku-buffer とします。

なお、すでに登録されている読みと漢字との組み合わせについては、二重登録はしないようになっています。

3.3.5.2 交ぜ書き変換辞書からの削除

交ぜ書き変換辞書からの削除の方法には、一つの漢字を削除する場合と、複数の漢字をまとめて削除する場合、入力法を覚えた漢字一字について不要な漢字をまとめて削除する場合の 3 通りあります。

一つの漢字を削除する場合 T-Code モードで C-u !を押し、読みを入力します。変換中や変換中断直後なら!だけで構いません。続いて、もしその読みに対して漢字が複数ある場合には、どれを削除するか選びます。

複数の漢字をまとめて削除する場合まず削除する漢字のデータを用意します。データの形式は、まとめて登録する場合と同じです ( 3.3.5.1 節「交ぜ書き変換辞書への登録」 p.13 参照)。次に、そのデータがあるバッファで M-x

tcode-mazegaki-ikkatu-delete-buffer とします。なお、辞書に登録されていない読みと漢字

との組み合わせに関しては無視します。

入力法を覚えた漢字一字について不要な漢字をまとめて削除する場合

M-x tcode-mazegaki-delete-kanji-from-dictionary とし、漢字を一字指定します。こうす

ると、その漢字が読みに含まれず、漢字に含まれるものを削除します。削除する前に、確認のため、漢字一覧が表示されますが、このうち、実際に削除されるのは、指定した漢字を含む候補だけです。なお、次のことに注意してください。たとえば、「花」を指定した場合、読み「あじさい」・漢字「紫陽花」というように、特殊な読みを持つものも削除されます。このような特殊な読みを辞書に残しておきたいのなら、新たに登録し直さなければなりません。

3.3.6 ‘tc.el’ での交ぜ書き変換—Egg を使用する場合

変数 tcode-use-egg-in-mazegaki が t のときには、 Egg を使って交ぜ書き変換を行います。 T-Code モードで fj と打つと、 Egg のフェンスモードになります。この状態で文字を (T-Code で) 入力する

と、その文字はフェンスに入ります。これ以外は通常の Egg による漢字変換と同じです。

3.4 インクリメンタルサーチ

T-Code で文字の入力ができるようになると、インクリメンタルサーチのときにも文字を T-Code で入力したくなるのは当然です。 ‘tc.el’ では、 isearch を再定義して、インクリメンタルサーチ時に T-Code で文字を入力できるようにしています。

C-s (isearch-forward) と打つと、元のバッファが T-Code モードだった時にはインクリメンタルサーチのプロンプトに ‘TC-I-Search’ と表示されます。このときキー入力をすると、それを T-Code ストロークと解釈してサーチ文字列に加えます。

インクリメンタルサーチ時の文字入力では、部首変換はできますが、交ぜ書き変換ができません。交ぜ書き変換を使ってサーチ文字列を入力したい場合には、 C-k (isearch-fep-string で示されるキー) を使って文字列を入力してください。

サーチを開始してから T-Code モードを切り替えるには、 isearch-toggle-tcode コマンドを実行します。デフォルトでは C-\ になっています。このとき、元のバッファの T-Code モードも連動して切り替わります。モード切り替えキーはカスタマイズすることができます ( 4.4.1 節「T-Code モード切り替えキーの変更」 p.24 参照)。

C プログラムを書いていて、コメントに日本語を T-Code で入力したい場合があります。ところが、コメントを記述している途中で関数名や変数名などを探そうとすると、モードの切り替えを行わなければなりません。このように、元バッファの T-Code モードに関係なく非 T-Code サーチをしたい場合があります。ユーザ変数 tcode-isearch-start-state を 0 に設定するとサーチは常に非 T-Code サーチから開始されます (4.2 節「ユーザ変数」 p.20 参照)。

3.5 様々なヘルプ機能

‘tc.el’ では、様々なヘルプ機能を提供しています。

仮想鍵盤表示機能まず、『仮想鍵盤』とは何か説明します。 T-Code では、 1 ストローク目をどう入力するかによって、 2 ストローク目を入力したときに挿入される文字が違います。つまり、 1 ストローク目の入力に応じて、キーボードの各キーの役割が変化するとみなせるわけです。 (ある状態での) 仮想鍵盤とは、その状態で持つ各キーの役割がそれぞれのキーに直接結びついているとみなしたときのキーボード (鍵盤) のことです。 1 ストローク目を入力し、しばらく待つと、ウインドウが開き、次のストロークでどの文字が入力されるか (仮想鍵盤) が表示されます。たとえば、 j を押すと次のように表示されます。

革援徒舞節  -  曹  -    -    -

[員よかっ ] く題 [ 制運び公] [とし、 * ] は設 [ 鉄現成映] [ドカり」 ] 田協 [ 多混選以]

続いて、 g を押せば ‘は’ が挿入されます。ここで、 ‘-’ は無効な入力、 ‘*’ は特殊な機能 (上の場合は部首変換) を表します。一打目を入力してから仮想鍵盤が表示されるまでの時間は、変数 tcode-display-help-delay で指定できます (4.2 節「ユーザ変数」 p.20 参照)。

ストローク表表示機能ストローク表 (1.3 節「ストローク表の見方」 p.2 参照) を表示します。 3.1 節「使用法」 p.6 を参照してください。

文字ヘルプ機能 44 や 55 により、文字の打ち方 ( 『ヘルプ表』 ) を表示します (3.1 節「使用法」 p.6 参照)。たとえば、「字」という字の打ち方は次のように表示されます。

字 = ウ + 子

・・・・・・・・
・・・・・・・・●: 第一打鍵
●・・・・・・○○: 第二打鍵

ここで、 ‘字 = ウ + 子’ は、部首変換でどの文字を組み合わせればその字が合成されるかを表しています (3.2 節「部首変換」 p.7 参照)。ヘルプ表は 99 で消すことができます。

自動ヘルプ機能部首変換や交ぜ書き変換により文字 (列) を入力したとき、その中に直接入力できる文字があれば、その字のヘルプ表を自動的に表示します。通常は 99 などで消さなければ表示されたままですが、設定を行えば、たとえば T-Code モードを切り替えた時に自動的に消すこともできます (4.2 節「ユーザ変数」 p.20 参照)。

3.6 その他の補助機能

これまでに説明した機能のほかにも、いくつかの便利な機能があります。ただし、設定をしないと使用できないものもあります。

3.6.1 カーソルの色でモードを表す機能

T-Code モードと通常 (非 T-Code) モードとでカーソルの色を変えることができます (設定が必要です)。変

数 tcode-mode-off-cursor-color および tcode-mode-on-cursor-color により、各モードを表すカーソル

の色を指定できます。

この機能は X Window System 上の Mule でのみ使用できます (他のウィンドウシステムでも使用できるかもしれません)。

この機能を使うには、以下を ‘.tc’ に加えて下さい。

      (add-hook 'tcode-ready-hook
                (function (lambda ()
                            (and window-system
                                 (tcode-enable-cursor-to-change-color)))))

3.6.2 コントロールキーを伴わないモード切り替え

モードの切り替えは通常 C-\により行いますが、これを特定の (コントロールキーを使わない) キーシーケンスによって行うことができます (設定が必要です)。

具体的には、 SPC ・ TAB ・ , のキーを使用し、次のように切り替えます。

非 T-Code モードから T-Code モードへ

, カーソルの直前の文字により動作が異なります。行頭または空白ならモード切り替え、それ以外ならそのまま, を挿入します。

SPC , スペースを挿入後、モードを切り替えます。

SPC TAB スペースは、一旦挿入されますが、モードを切り替えた後取り除かれます。

T-Code モードから非 T-Code モードへ

SPC 直前に行われた動作 (キー入力) により動作が異なります。 T-Code による入力の直後 (前置型の交ぜ書き変換中のときを除く) では、モード切り替えを行い、かつスペースを挿入します。そうでない場合は、そのままスペースを挿入します。

SPC TAB スペースは、一旦挿入されますが、モードを切り替えた後取り除かれます。

少し複雑に見えますが、実際は簡単です。たとえば、 T-Code モードの時に、 ‘たとえば、 T-Code モード’ と入力しようとしたとします。この場合は、 ‘たとえば、 ’ の後 SPC を入力し、続けて ‘T-Code ’ を入力します。次に、 , の後 ‘モード’ と入力すればよいのです。ここで、句読点の直後では、 SPC による切り替えでも空白は挿入されません。

SPC や SPC , による切り替えの際に挿入される空白を自動的に削除したい場合は tcode-electric-space-

without-inserting を t にしてください。

この機能を使用するには、以下を ‘.tc’ に追加してください。

;;; コントロールキーを伴わないモード切り替え

      (global-set-key " " 'tcode-electric-space)
      (global-set-key "," 'tcode-electric-comma)
      (add-hook 'tcode-mazegaki-init-hook
                (function (lambda ()
                            (set-tcode-mode-key " " 'tcode-electric-space))))

3.6.3 もう一つの外字入力

T-Code で直接入力できない文字を手軽に入力したい時があります。この場合に、コマンド tcode-insert-ya-outset を用いて、 T-Code で用いるキー以外のキーを利用して、 2 ストローク (またはそれ以上) で自分の定義した字を入力することができます (設定が必要です)。

たとえば、 T-Code モードで、 T-Code で用いるキー以外のキー [にこの機能を割り当てたとします。 [を入力し、次に T-Code に用いるキーを入力すれば、変数 tcode-ya-outset-map-list で定義された表に基づき字が入力できます。 [をさらに入力すると、 tcode-ya-outset-map-list のリストを順次切り替えます。なお、 [を入力して 1 秒ほど待つと、仮想鍵盤が次のように表示されるようになっていますので、変数 tcode-ya-outset-map-list での字の並び方を覚える必要はありません。

√∂『』▼《》【】“ [★◆■● ] ▲〈 [ 〉〔〕〃] [☆◇□○ ] △← [ ↓↑→§ ] [※‥…◎ ] ▽〓 [ 〒♂♀‐ ] (1/3)

設定は、コマンド tcode-ya-outset を適当なキーに割り当ててください ( 4.4.3 節「T-Code モードでのキー割り当ての変更」 p.25 参照)。

3.6.4 漢字に対する交ぜ書き変換辞書中の読みの表示

オンラインドキュメントで読み方のわからない漢字があった場合、交ぜ書き変換辞書を利用して、その読み

を調べることができます。その漢字をリージョンで指定して、 M-x tcode-mazegaki-show-yomi-region とす

ると、その漢字の読みを交ぜ書き変換辞書から探してきて、もし見つかれば、それを表示します。活用する語

に対しては、語幹のみをリージョンで指定し、 C-u M-x tcode-mazegaki-show-yomi-region とすることで、

その語幹を持つ読みを探すことができます。

3.6.5 ひらがなからカタカナへの変換

  入力済みのひらがなをカタカナへと変換できます。 M-x tcode-katakana-previous-char でカーソル直前

の一文字をカタカナへ変換します。また、数引数を与えることによって、 point の n 文字前までにあるひらがなすべてをカタカナへ変換します。

一文字だけ変換した場合、その字は自動ヘルプ (3.5 節「様々なヘルプ機能」 p.15 参照) の対象となります。適当なキーに割り当てて使用するとよいでしょう ( 4.4.3 節「T-Code モードでのキー割り当ての変更」 p.25

参照)。

3.6.6 区点コード・ JIS コードによる文字の入力

入力法のわからない漢字の区点コードまたは JIS コードが分かれば、そのコードにより文字入力ができます。

  区点コードで入力するには、 M-x tcode-insert-kanji-by-kuten-code の後にそのコードを入力してくだ
さい。 JIS コードの場合は M-x tcode-insert-kanji-by-jis-code です。

これらの方法で入力した字は自動ヘルプ (3.5 節「様々なヘルプ機能」 p.15 参照) の対象となります。

3.6.7 句読点自動切り替え

書く文章の内容によって句読点を変えることがある場合、その内容に応じて自動的に句読点を切り替えるようにしておけば、うっかり句読点を混在させてしまうことがふせげます。設定をすれば、この機能が使えるようになります。

  設定は以下のように行います。自動切り替えを行う主モードを変数 tcode-auto-identify-kutouten-mode-

list で指定します。たとえば、 text-mode と tex-mode で自動切り替えを有効にするには、以下のように ‘.tc’ に記述します。

      (add-hook 'tcode-mode-hook 'tcode-auto-switch-kutouten)
      (setq tcode-auto-identify-kutouten-mode-list
            '(text-mode tex-mode))
  設定したモードにかかわらず、強制的に自動切り替えを行うには、 C-u M-x tcode-auto-switch-kutouten

とします。

  なお、句読点の判定は変数 tcode-kutouten-regexp-alist に基づき行われます。

4 カスタマイズ

ここでは ‘tc.el’ でカスタマイズできる主な部分を簡単に説明します。もっと詳しく知りたい方はソースファイルを読んでください。

4.1 個人設定用ファイル

T-Code に関するカスタマイズは ‘~/.tc’ で行います。 ‘~/.emacs’ には、 T-Code に関する設定は、通常

(require 'tc-setup)

だけを記述します。

ファイル名 ‘.tc’ は変数 tcode-init-file-name で変更できます。この場合、 ‘.emacs’ で、その中の (require

'tc-setup) よりも前に設定しなければ有効になりません。

4.2 ユーザ変数

ここでは、ユーザが変更できる主な変数を説明します。

パス

Variable tcode-data-directory

T-Code の各種データファイルを置くディレクトリ。ディレクトリ名の最後が/で終わっていなければなりません。デフォルトでは ‘~/emacs/lisp/’。今後出てくる変数の中で、値が ‘~/emacs/lisp’ で始まるものはすべて、この tcode-data-directory の値を変えることで、そのデフォルト値が変わります。ただし、この変数の値は ‘tc.el’ ロード時にだけ参照されるので、 T-Code 起動後

に tcode-data-directory の値を変更しても意味はありません。

Variable tcode-table-file-name

T-Code の文字表。実際には、文字だけでなく、入力体系に依存する諸定義がすべて含まれています。このファイルは、 Mule の load-path (*.el ファイルの検索パス群) のどこかに置く必要があります。デフォルトは ‘tc-tbl’。 TUT-Code により入力する場合 (第 5 章「TUT-Code で入力するには」 p.30 参照) には、このファイル名を変更します。

Variable tcode-mazegaki-dictionary-name

交ぜ書き変換辞書のパス名。デフォルトでは、辞書の読みの向きが正順 (変数 tcode-mazegaki-

reverse-yomi-jisho (後述) が nil) のときは ‘~/emacs/lisp/mazegaki.dic’、そうでないとき
は ‘~/emacs/lisp/mazegaki.rev’。

Variable tcode-bushu-dictionary-name

部首変換辞書のパス名。デフォルトでは ‘~/emacs/lisp/bushu.dic’。

Variable tcode-record-file-name

T-Code 使用の統計を記録するファイルのパス名。 nil なら記録しません。デフォルトでは

‘~/.tc-record’。

部首変換

Variable tcode-bushu-on-demand

部首変換辞書の初期化をいつ行うかを指定します。数字が大きい方がより強い要求があったときにしか初期化を行いません。 tcode-bushu-on-demand に指定された数以上の要求が来ると、部首変換辞書の初期化を行います。

0 ‘tc.el’ ロード時。

1 T-Code モードに入ったとき (デフォルト)。

2 前置部首変換を開始したとき。ストロークヘルプを実行したとき。

3 後置部首変換を開始したとき。

Variable tcode-use-postfix-bushu-as-default

nil でないときに、 jf で後置型部首変換を行い、 77 で前置型部首変換を行います。 nil のときは逆になります (デフォルト)。

交ぜ書き変換

Variable tcode-use-egg-in-mazegaki

交ぜ書き変換の時に Egg を使う時 ( 3.3.6 節「‘tc.el’ での交ぜ書き変換—Egg を使用する場合」 p.15 参照) には t、使わない時 (デフォルト) には nil に設定します。

Variable tcode-use-prefix-mazegaki

前置型の交ぜ書き変換 ( 3.3.3 節「‘tc.el’ での交ぜ書き変換—前置型」 p.13 参照) を使う時に t。

デフォルトでは nil。変数 tcode-use-egg-in-mazegaki が nil の時にだけ意味を持ちます。

Variable tcode-mazegaki-priority-list

候補選択時の候補の並べ方を指定します。キーアドレスのリストです (4.5 節「個人用設定ファイルの見本」 p.27 参照)。

Variable tcode-mazegaki-gakusyu-kouho-offset

学習 (候補の入れ替え) する際の、学習の対象外となる候補の数です ( 3.3.2.1 節「候補の選択法」 p.10 参照)。十分大きな値にしておけば、候補の入れ替えをしなくなります。

Variable tcode-mazegaki-yomi-max

交ぜ書き変換の対象とする読みの長さの最大値を指定します。活用語の場合は活用語尾の長さも含みます。長くすると変換効率が悪くなるので、長くしすぎないようにしてください。

Variable tcode-mazegaki-enable-variable-yomi-postfix

nil でないとき、活用語の変換 ( 3.3.2.2 節「活用する語に対する変換候補の検索法」 p.11 参照) をします。そうでないときは、活用語の変換をしません。

Variable tcode-mazegaki-reverse-yomi-jisho

交ぜ書き変換辞書の読みの読きが正順のとき nil、そうでなければ nil 以外にします。以前のバージョンの交ぜ書き変換辞書との互換性のためにあります。

ヘルプ

Variable tcode-display-help-delay

T-Code モードで、一打目を入力してから仮想鍵盤 (3.5 節「様々なヘルプ機能」 p.15 参照) が表示されるまでの時間 (秒)。 NEmacs では整数しか指定できませんが、 Mule では小数も指定できます。

Variable tcode-auto-help

nil でないとき自動ヘルプを行います (3.5 節「様々なヘルプ機能」 p.15 参照)。

Variable tcode-auto-remove-help-count

ヘルプ用のバッファを自動的に消す関数 tcode-auto-remove-help は、この変数で指定した回数だけ呼ばれるとヘルプ用のバッファを消します。たとえば、次の設定では、 T-Code モードのトグルを行ったときにヘルプ用のバッファが表示されていたら、そのバッファを消します。

;;; モード切り替え時にヘルプ用のバッファを消す。

     (add-hook 'tcode-ready-hook
               (function
                (lambda ()
                  (setq tcode-auto-remove-help-count 1)
                  (add-hook 'tcode-toggle-hook
                            'tcode-auto-remove-help))))
上の例について、 Mule では、 tcode-toggle-hook の代わりに post-command-hook を使っても

よいでしょう。

Variable tcode-adjust-window-for-help

nil でないとき、ヘルプ用のウィンドウの高さを自動的に調整します。 nil でも、もともとウィンドウが分割されていなかった場合では、自動的に調整します。

インクリメンタルサーチ

Variable tcode-isearch-start-state

T-Code インクリメンタルサーチ開始時の T-Code モードを指定します。

nil バッファの T-Code モードに同期 (デフォルト)。

t バッファの T-Code モードと独立。開始時はバッファと同じ。

0 バッファの T-Code モードと独立。常に非 T-Code サーチから開始。

1 バッファの T-Code モードと独立。常に T-Code サーチから開始。

バッファローカル変数です。

Variable tcode-isearch-enable-wrapped-search

nil でなければ、行を折り返している日本語も検索します。

その他

Variable tcode-load-immediate

nil でないとき初期設定時 (‘tc-setup.el’ ロード時) に T-Code で使用する Lisp ライブラリをすべてロードします。

Variable tcode-verbose-message

nil でないとき様々なメッセージを表示します。

Variable tcode-self-inserting-commands

T-Code モードのとき tcode-self-insert-command (通常の T-Code 入力を行うためのコマンド) に化けてほしいコマンドの alist。リストの各要素は (command . arg) の形です。 arg は interactive の第二引数と同じ文字列を指定します。たとえば、 c-mode の ; (electric-c-semi) などがここにリストされるべき関数の例です。

4.3 フック

Variable tcode-ready-hook

T-Code に関する初期化を行った直後に呼ばれます。これは Emacs を起動してから初めて tcodemode を行った時におこります。 T-Code モードでのキー割り当ての変更などに使用します。

Variable tcode-bushu-ready-hook

部首変換に関する初期化を行った後に呼ばれます。

Variable tcode-mode-hook

各バッファにおいて初めて T-Code を使おうとしたときに呼ばれます。

Variable tcode-toggle-hook

T-Code モードを切り替えるたびに呼ばれます。

Variable tcode-after-load-table-hook

文字表を読み出すたびに呼ばれます。正確には、読み出した直後に呼ばれます。コード入力に対する動作を一部変更する場合などに使用します。

Variable tcode-mazegaki-init-hook

最初に交ぜ書き変換モジュールをロードするときに呼ばれます。交ぜ書き変換に関する設定を行うときに使用します。

4.4 キー割り当ての変更

4.4.1 T-Code モード切り替えキーの変更

T-Code モードの切り替えを行うコマンドは tcode-mode です。 ‘tc.el’ では C-\ に割り当てられています。ただし、 Mule 3 では、直接このコマンドを C-\に割り当てるのではなく、 toggle-input-method というコマンドを通して呼び出すようにしています。

これを他のキーに割り当てるには Emacs の define-key を使って普通に設定すればよいのです。たとえば C-j にこの機能を割り当てたい時には下のように記述します。

      (define-key global-map "\C-j" 'tcode-mode)

また、 C-\への割り当てを取り消すには、以下のように記述します。

      (global-unset-key "\C-\\")

インクリメンタルサーチ時の切り替えキーの変更は次のとおりです。

      (define-key isearch-mode-map "\C-j" 'isearch-toggle-tcode)
      (define-key isearch-mode-map "\C-\\" nil)

ただし、インクリメンタルサーチ時の切り替えは、 NEmacs の場合、次のとおりです。

      (setq search-tcode-char ?\C-j)

4.4.2 入力文字と仮想鍵盤との対応

‘tc.el’ でのキー割り当ては、入力文字 (実際のキー) ではなく、仮想鍵盤で用いるキーのアドレスにより行います。デフォルトでは、次の対応になっています。

• 実際のキー配置

           1  2  3  4  5   6  7  8  9  0
           q  w  e  r  t   y  u  i  o  p
           a  s  d  f  g   h  j  k  l  ;
           z  x  c  v  b   n  m  ,  .  /

• 仮想鍵盤で用いるキーのアドレス

           0  1  2  3  4   5  6  7  8  9
          10 11 12 13 14  15 16 17 18 19
          20 21 22 23 24  25 26 27 28 29
          30 31 32 33 34  35 36 37 38 39

この対応の変更は、 set-tcode-mode-key ( 4.4.3 節「T-Code モードでのキー割り当ての変更」 p.25 参照) で行えます。たとえば、 Dvorak 配列用に変更したい場合は、以下を ‘.tc’ に追加します。

      (add-hook
       'tcode-ready-hook

(function
(lambda ()
(mapcar
(function (lambda (elm)
          (let ((code (car elm))
                (key (cdr elm)))
            (set-tcode-mode-key key nil code))))

;; 対応 (キーアドレス . 実際に入力される文字)

'(( 0 .  ?1) ( 1 . ?2) ( 2 . ?3) ( 3 . ?4) ( 4 . ?5)    ; 一段目左
( 5 .  ?6) ( 6 . ?7) ( 7 . ?8) ( 8 . ?9) ( 9 . ?0)    ; 一段目右
(10 .  ?') (11 . ?,) (12 . ?.) (13 . ?p) (14 . ?y)    ; 二段目左
(15 .  ?f) (16 . ?g) (17 . ?c) (18 . ?r) (19 . ?l)    ; 二段目右
(20 .  ?a) (21 . ?o) (22 . ?e) (23 . ?u) (24 . ?i)    ; 三段目左
(25 .  ?d) (26 . ?h) (27 . ?t) (28 . ?n) (29 . ?s)    ; 三段目右
(30 . ?\;) (31 . ?q) (32 . ?j) (33 . ?k) (34 . ?x)    ; 四段目左
(35 .  ?b) (36 . ?m) (37 . ?w) (38 . ?v) (39 . ?z)))  ; 四段目右
(set-tcode-mode-key "/" nil))))

4.4.3 T-Code モードでのキー割り当ての変更

T-Code モードでのキー割り当ての変更は、関数 set-tcode-mode-key で行います。

たとえば、「T-Code モードを抜けてからその文字を入力する機能」を定義し、それを\に割り当てるには、以下を ‘.tc’ に記述します。

(defun toggle-tcode-mode-and-self-insert (arg)

"T-Code モードをトグルしてから入力した字を挿入する。 "

(interactive "*p")
(tcode-mode)
(self-insert-command arg))
(add-hook 'tcode-ready-hook
   (function
    (lambda ()

;; 「\」でモード切り替え後挿入

      (set-tcode-mode-key "\\"
       'toggle-tcode-mode-and-self-insert))))
関数 set-tcode-mode-key は次のように定義してあります。

Function set-tcode-mode-key key func &optional type key は割り当てを変更するキーです。 func はコマンドのシンボルまたは nil です。 type はキーのアドレスを指定する時などに用います。

4.4.4 コード入力に対する動作の変更

T-Code のコード入力に対する、挿入される文字列や機能の変更は、関数 tcode-set-action-to-table で行います。

ここでは、例として、通常 T-Code で ‘ 「’ を入力するコード (,g のストローク) に対し、鍵括弧の対 ‘ 「」 ’ を

入力する機能を割り当ててみましょう。 ,g のストロークは'(37 24) になります。以下を ‘.tc’ に追加します。

(defun tcode-insert-matching-kagikakko (&optional arg)

"` 「」 ' を挿入し、その間にカーソルを移動する。整数 ARG を指定すると、挿入前のカーソル位置から ARG 文字を ` 「' の前に入れる。この場合、カーソルは `」 ' の手前である。 "

  (interactive "P")
  (insert " 「")
  (and arg (tcode-forward-char (prefix-numeric-value arg)))
  (save-excursion
    (insert "」 ")))
(add-hook 'tcode-after-load-table-hook
          (function
           (lambda ()
             (if (eq tcode-input-method 'tcode)

;; 対応する「」を挿入する。

                 (tcode-set-action-to-table
                  '(37 24)
                  'tcode-insert-matching-kagikakko)))))
関数 tcode-set-action-to-table は次のように定義してあります。

Function tcode-set-action-to-table sequence value

sequence は割り当てを変更するキーストロークです。キーアドレスのリストまたはキーアドレス

を指定します。キーアドレスを指定した場合、続いて SPC を入力した時の動作を変更します。

value は以下が指定できます。

コマンド (symbol)

そのコマンドを実行します。

関数 (symbol, lambda 式)

その関数を引数なしで呼びます。

変数 (symbol)

その変数を評価した結果の動作を行います。

表 (vector) 更にその表に従った動作を行います。

リスト (list)

更にそのリストに従った動作を行います。

文字列 (string)

その文字列を挿入します。

文字 (char) その文字を挿入します。

nil キーストロークを無効にします。

4.5 個人用設定ファイルの見本

‘.tc’ の記述例を以下に挙げます。ただし、何を設定しているかを理解せずに以下の例をそのまま自分の ‘.tc’

にしてはいけません。初めて T-Code を使う場合は、最初は変数 tcode-data-directory を自分の環境に合わ

せて設定するだけにしておき、徐々に変更していく方がよいでしょう。

;;; .tc --- setup file for T-Code       -*-emacs-lisp-*-

;;; ●変数の設定

;; tcode-data-directory を "~/.Env/mule/T-Code/" に変える
(setq tcode-data-directory "~/.Env/mule/T-Code/")

;; 起動時に T-Code で使うすべてのライブラリをロードする

(setq tcode-load-immediate t)

;; 部首変換で後置型を使用する

(setq tcode-use-postfix-bushu-as-default t)

;; 部首辞書を tc.el ロード時に読み込む

(setq tcode-bushu-on-demand 0)

;; 余計なメッセージを出さないようにする

(setq tcode-verbose-message nil)

;; ヘルプ用のウィンドウの大きさを自動的に調整する

(setq tcode-adjust-window-for-help t)

;; インクリメンタルサーチで行の折り返しを有効にする

(setq tcode-isearch-enable-wrapped-search t)
;; .tc-record に記録しない
(setq tcode-record-file-name nil)

;;; ● global キーの設定
;; `tcode-electric-space' および `tcode-electric-comma' を使った

;; モードの切り替えを有効にする

(global-set-key " " 'tcode-electric-space)
(global-set-key "," 'tcode-electric-comma)

;;;; ●拡張コマンド

(defun toggle-tcode-mode-and-self-insert (arg)

"T-Code モードをトグルしてから入力した字を挿入する。 "

  (interactive "*p")
  (tcode-mode)
  (self-insert-command arg))

;;; ● T-Code モードに初めて入ったときに行う設定

(add-hook 'tcode-ready-hook
(function
(lambda ()

;; シフトはそのまま大文字にする

(mapcar
 (function
  (lambda (key)
    (set-tcode-mode-key key nil -1)))
 '(?A ?B ?C ?D ?E ?F ?G ?H ?I ?J ?K ?L ?M ?N
      ?O ?P ?Q ?R ?S ?T ?U ?V ?W ?X ?Y ?Z))

;; T-Code で使用する 40 個のキー以外のキーへのコマンドの割り当て

(set-tcode-mode-key "\\" 'toggle-tcode-mode-and-self-insert)

;; カーソルの色

(and window-system
     (progn
       (tcode-enable-cursor-to-change-color)

;; 安全のため

       (add-hook 'tcode-toggle-hook
                 'tcode-enable-cursor-to-change-color)))

;; T-Code モードに最初に入った時に交ぜ書き変換の辞書を読み込む

(save-excursion
  (tcode-mazegaki-switch-to-dictionary)))))

;;; ●文字表を読んだ後に行う設定 ;;; ○ 2 ストローク以上のストロークのキー割り当て

(add-hook 'tcode-after-load-table-hook
(function
(lambda ()
(if (eq tcode-input-method 'tcode)
    ;; T-Code 用の設定
    (progn
      ;; QWERTY での「ke」に変数 tcode-left-paren を割り当てる
      (tcode-set-action-to-table '(27 12)
                                 'tcode-left-paren)
      ;; QWERTY での「id」に変数 tcode-right-paren を割り当てる
      (tcode-set-action-to-table '(17 22)
                                 'tcode-right-paren))))))

;;; ●交ぜ書き変換に関する設定

(add-hook 'tcode-mazegaki-init-hook
'(lambda ()

;; 候補選択に使用するキーを二段だけにする

(setq tcode-mazegaki-priority-list

;; キー配置

      ;;  0  1  2  3  4    5  6  7  8  9
      ;; 10 11 12 13 14   15 16 17 18 19
      ;; 20 21 22 23 24   25 26 27 28 29
      ;; 30 31 32 33 34   35 36 37 38 39

                   '(27 22 26 23 28 21 25 24 29 20
                        17 12 16 13 18 11 15 14 19 10))

;; 変換対象の長さを設定

             (setq tcode-mazegaki-yomi-max 8)

;; 学習 (候補の入れ替え) をしないようにする

             (setq tcode-mazegaki-gakusyu-kouho-offset 10000)

;; スペースで、変換だけでなくモード切り替えも行う

             (set-tcode-mode-key " " 'tcode-electric-space)))

;;; ●その他の設定

;; ○句読点等の切り替え ;; 標準よりも組み合わせを増やし、かつ「(」や「)」も切り替えるようにする。

(defvar tcode-left-paren "(" "* 開き括弧")
(make-variable-buffer-local 'tcode-left-paren)
(defvar tcode-right-paren ")" "* 閉じ括弧")
(make-variable-buffer-local 'tcode-right-paren)
(setq tcode-switch-table-list

'(;; デフォルト

        ((tcode-touten . "、 ")
         (tcode-kuten . "。 ")
         (tcode-left-paren . "(")
         (tcode-right-paren . ")"))

;; 1 バイト系

        ((tcode-touten . ", ")
         (tcode-kuten . ". ")
         (tcode-left-paren . "(")
         (tcode-right-paren . ")"))

;; 2 バイト系

        ((tcode-touten . "， ")
         (tcode-kuten . "． ")
         (tcode-left-paren . " （")
         (tcode-right-paren . "） "))))

;;; ○句読点の自動切り替え ;; 切り替えの規準 (正規表現) の指定

(setq tcode-kutouten-regexp-alist
      (list '("[、。 ]" . 1)
            (if (tcode-nemacs-p)
                '("\\z[,.]" . 2)
              '("\\cj[,.]" . 2))
            '("[，． ]" . 3)))
;; 切り替える主モードを指定 (text-mode latex-mode)
(setq tcode-auto-identify-kutouten-mode-list
      '(text-mode latex-mode))

;; バッファで最初に T-Code モードに入ったときに、 ;; 句読点を自動的に切り替える

(add-hook 'tcode-mode-hook 'tcode-auto-switch-kutouten)
;;; .tc ends here

5 TUT-Code で入力するには

TUT-Code は T-Code と同様の漢字直接入力法です。 ‘tc.el’ は、 TUT-Code のドライバとしても使用することができます。ここでは、 TUT-Code 用の設定法と、 T-Code ドライバの様々な機能をどう TUT-Code 用に割り当てているかを簡単に説明します。

5.1 TUT-Code 用の設定

TUT-Code 用の設定は、以下を ‘.tc’ に記述します。

;;; テーブルの指定

    (if (tcode-mule-3-p)
        (set-default-input-method "Japanese" "TUT-Code")
      (setq tcode-table-file-name "tutc-tbl"))

;;; カタカナモードのトグルを「'」に割り当てる

    (add-hook 'tcode-after-load-table-hook
              (function
               (lambda ()
                 (set-tcode-mode-key "'" 'tcode-toggle-katakana-mode))))

;;; ストローク表を 3 段表示にする

    (setq tcode-help-draw-top-keys nil)

カタカナモードのトグルを行うキーは、お使いのキー配列や好みに合わせて変更してください。以上の設定は特に TUT-Code で入力するときに必要となる設定ですが、これ以外の設定項目も T-Code と

同様に変更できます。

5.2 各機能の割り当て

T-Code で使用される機能 (第 3 章「T-Code を使う」 p.6 参照) は、 TUT-Code でも同様に利用できます。最上段のキーの組み合わせは、 T-Code と同様の割り当てです。数字を入力したい場合は、数字キーのあと

にスペースを入力してください。

fj (交ぜ書き変換) は alj、 jf (部首変換) は ala にそれぞれ割り当てています。これらの機能を、 TUT 記号を変更して使用することもできます。たとえば次のように ‘.tc’ に記述してください。

    (add-hook 'tcode-after-load-table-hook
              (function
               (lambda ()
                 (if (eq tcode-input-method 'tutcode)
                     (progn

;; 「k SPC」で交ぜ書き変換

                       (tcode-set-action-to-table 27 'tcode-mazegaki-start)

;; 「l SPC」で部首変換

                       (tcode-set-action-to-table 28 'tcode-bushu-henkan))))))

T-Code モードでは、 ?や!が、それぞれヘルプ・交ぜ書き変換辞書からの漢字の削除の機能に割り当てられています。 ?や!を入力したいときは、 C-q の後にそのキーを押して入力してください。

6 補助ソフトウェア

6.1 Tchart: T-Code 表を印刷する

Tchart は、 JIS の各漢字について、それをどのように入力すればよいのかを教えてくれる表です。 Tchart は「ドット表現」でストロークを表しています。

Tchart は、 Mule (NEmacs) 用マクロ、 METAFONT 用のフォント記述、 TEX マクロから構成されています (ただし、 300dpi 用フォントはキットに含まれているので、 300dpi プリンタに印刷する場合には METAFONT は必要ありません)。

表を得るには、付属の ‘tchart.tex’ を TEX (日本語対応のもの) で処理します。

6.2 打ち方表作成プログラム hasida-table

Tchart は JIS の各漢字についての打ち方を表にしていますが、枚数が多いため、異なる文字を何度も探すのには不便です。そこで、直接入力できる文字の打ち方を A4 紙 2 枚分の表にしたものを、橋田 (hasida@etl.go.jp) さんが考案されました。これは TEX で処理するものでしたが、これを PS で出力できるようにし、また、どの文字を表に入れるかを簡単にカスタマイズできるようにしたプログラム (Perl スクリプト) を藤原

(makoto@komekome.bay.prug.or.jp) さんが作成されました。

このプログラム (hasida-0.6.tar.gz) は、 FTP で入手できます (1.4 節「T-Code 情報の入手方法」 p.3 参照)。プログラムの詳しい内容は、プログラムに付属の文書を参照してください。

6.3 T-Code 練習プログラム EELLL

『EELLL』は T-Code の練習プログラムです。 EELLL ( 「うなぎぎぎ」と読みます :-) は、山田研にかって存

在したタイピング練習ソフト Computer Aided Touch Type Trainer CATTT ( 「きゃっととと」 ) の Emacs Lisp

版であるということにちなんで名付けられました。端末を使って直接練習するプログラムとしては、 DOGGG が用意されています (6.4 節「T-Code 練習プログラム DOGGG」 p.31 参照)。

EELLL は M-x eelll で起動します。ミニバッファから練習テキストの番号を入力します。前回練習したレッスン番号がミニバッファにあらかじめ入力されています。基本的に、番号の順に練習を進めていってください。

練習テキストが一行ずつ出てきます。それを T-Code を使って入力して下さい。入力はエコーバックされません。また、入力の際には部首変換や交ぜ書き変換を使うことはできません。

6.4 T-Code 練習プログラム DOGGG

『DOGGG』は端末画面用の T-Code 練習プログラムです。現在、 Sun OS 4.1.x と Solaris 2.x 上での動作が確認されています。 ‘doggg.lzh’ という名前で FTP (1.4 節「T-Code 情報の入手方法」 p.3 参照) から入手できます。

■ちなみに同じソースで DOS 版を作ることもできます。□

6.5 交ぜ書き変換辞書の作成

‘tc.el’ 中で定義されている変数 tcode-use-egg-in-mazegaki を t にすると、交ぜ書き変換を Egg を使って行うようになります。この場合には、 Wnn (jserver) の辞書を、交ぜ書き変換用に作る必要があります。この方法については現在解説を作成中です。

Egg を使わない場合には、 ‘tc.el’ オリジナルの交ぜ書き変換を使うことになります。 Egg を使わない場合の交ぜ書き変換辞書の作り方を以下に説明します。

6.5.1 キットの構成

交ぜ書き変換辞書を作るために必要なファイルはパッケージ中の ‘mazegaki/’ サブディレクトリ下に置かれています。

‘pd_kihon.yom’

元となる辞書ファイル。このファイル自体を作り直す方法については 6.5.3 節「‘pd_kihon.yom’ を作る」 p.33 を参照してください。

‘t225.dat’
‘t300.dat’
‘t400.dat’
‘t450.dat’
‘t575.dat’
‘t675.dat’
‘t900.dat’
‘t1200.dat’

それぞれ、 reduce を使って辞書エントリ表を作る時に使います。 t の後ろの数字は、漢字を大体何文字位覚えたかを示しています。

‘reduce.c’ ‘pd_kihon.yom’ と、 ‘t*.dat’ から、辞書エントリ表を作るプログラム。

‘combine.c’

‘reduce’ の作った辞書エントリ表から、 ‘tc.el’ の利用できる辞書を作るプログラム。

6.5.2 交ぜ書き変換辞書の作り方

1. 交ぜ書き辞書作成キットのあるディレクトリへ移動します。

2. 「完全に打ち方を覚えた漢字の表」 (‘certain’) と、「まだ完全には覚えていない漢字の表」 (‘uncertain’) を作ります。これは、 ‘mazegaki/’ 下の ‘t*.dat’ ファイルを適当につなぎ合わせて作ればよいでしょう。 ‘t*.dat’ の内容をざっと見て、「大体この中にある漢字は全部覚えたな」と思ったファイルを cat などでつなぎ合わせて、 ‘certain’ ファイルを作ります。同様に、「今練習中だけど、まだ完全には覚えていないな」という漢字の含まれるファイル群をつなぎ合わせて、 ‘uncertain’ ファイルを作ります。 ■ただし、 ‘t*.dat’ は T-Code 用のデータですので、 TUT-Code を利用する場合では、 ‘certain’、 ‘uncertain’ を、 ‘t*.dat’ を使わず自分で用意しなければなりません。書き方は ‘t*.dat’ を参考にしてください。□

たとえば、 ‘t225.dat’ と ‘t300.dat’ 中の漢字は全部覚えたが、 ‘t400.dat’ と ‘t450.dat’ 中の漢字はまだ不完全、それ以外の漢字は全然打てない、という場合には、次のように ‘certain’ と ‘uncertain’ ファイルを作ることになります。

% cat t225.dat t300.dat > certain
% cat t400.dat t450.dat > uncertain

Perl5 を持っている場合には、 ‘inter.pl’ というプログラムを使って、この作業を対話的に行うことができます。

■ [補足] 生成される辞書が、 ‘certain’、 ‘uncertain’ で指定した文字および指定しなかった文字によってどう違ってくるのかを簡単に補足します。交ぜ書き変換辞書では、ある漢字 (変換候補) に対して、漢字を含む読みがあり得ます。 ‘certain’、 ‘uncertain’ の指定の仕方によって、読み中に現れる漢字が変わります。次の対応になっています。

読み中にその字が現れる読み中にその字の読みが現れる

      certain  ○×
      uncertain  ○○

どちらでもない×○

たとえば、「茶飯事」という漢字について、「茶」を ‘uncertain’ に含め、「事」を ‘certain’ に含め、「飯」はどちらにも含めないとすると、読みは「さはん事」、「茶はん事」になります。 □

3. make します。

% make

このようにして作った辞書 ‘mazegaki.dic’ を、 ‘~/emacs/lisp/’ (4.2 節「ユーザ変数」 p.20 参照) に置いて下さい。

6.5.3 ‘pd_kihon.yom’ の作り方

Wnn の ‘kihon.u’ と ‘tankan.u’ から、 T-Code の辞書ソースファイルである ‘pd_kihon.yom’ を作る方法を説明します。 T-Code パッケージには ‘pd_kihon.yom’ は既に含まれていますので、この作業は一般には不要です。自分で漢字を ‘pd_kihon.yom’ へ登録したい場合にだけ行ってください。

1. まず、 Wnn のソースを入手して、その中の ‘pubdic/*.u’ ファイルをカレントディレクトリにコピー (あるいはシンボリックリンク) して下さい。 Wnn のソースは X11R6 に標準で付いてきます。

2. ‘step1.pl’ を次のように実行します。

% ./step1.pl

‘filter.pl’ は ‘kihon.u’ と ‘tankan.u’、そして Tcode 用の漢字ファイル ‘tcode.u’ (このパッケージに含まれています。 ) から、中間形式のファイル ‘step1’ を生成します。 3. ‘step2.pl’ を実行します。

     % ./step2.pl

これで、作業ディレクトリ上に ‘pd_kihon.yom’ と ‘jukujiku.maz’ が作成されます。

6.6 kinput2 を利用するには

‘tc.el’ は Mule/NEmacs 上でしか利用できませんが、 X で動作する日本語入力プログラム kinput2 をカスタマイズすれば、 X 上の他のアプリケーションに対しても、 T-Code を使用することができます。

このパッケージ中の ‘kinput2’ ディレクトリに、 ‘ccdef.tcode’ と ‘tc-ki2.el’ の二つのファイルがあります。以下、 kinput2 で T-Code 入力ができるようにするための方法を説明します。

1. Mule/NEmacs を起動し、 ‘tc-ki2.el’ をロードします。これをするには、 M-x load-file RET の後、

‘tc-ki2.el’ を指定します。

2. ‘rule.tcode’ というバッファが生成されていますので、これを適当なディレクトリに保存します。これは、 C-x b rule.tcode の後、 C-x C-w で保存すればよいでしょう。また、保存したディレクトリに、付

属の ‘ccdef.tcode’ も移します。

3. ‘rule.tcode’ を EUC コードに変換します。たとえば nkf という漢字コード変換プログラムを利用して、次のようにすることで変換できます。

     % nkf -e rule.tcode > foo
     % mv foo rule.tcode

以上です。 kinput2 を使用するときは、 ‘ccdef.tcode’ のあるディレクトリで

 % kinput2 -ccdef ccdef.tcode

のように起動してください。概念索引 35

概念索引

.

.tc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2

2 ストローク入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

A

awkward sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

B

bushu.dic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 bushu.rev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

C

certain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

D

DOGGG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

E

EELLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Egg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

F

FTP サイト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

I

inter.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

J

JIS コード表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

K

kinput2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

M

mazegaki.dic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 mazegaki.rev. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

P

pd kihon.yom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

T

T-Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 T-Code の練習 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 T-Code モード切り替えキーの変更 . . . . . . . . . . . . . . . . . . 24 tc.el . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Tchart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 TUT-Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

U

uncertain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

い

インクリメンタルサーチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 インストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

か

外字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 カスタマイズ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 仮想鍵盤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

き

キーボード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 木を見て森を見る方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

こ

個人設定用ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

し

自動ヘルプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

す

ストローク表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

ち

中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

て ディレクトリ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 に ニフティサーブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 入手方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ふ 部首変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 —インクリメンタルサーチ . . . . . . . . . . . . . . . . . . . . . . . . . . 15 —開始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 —辞書のパス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 —中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 部首変換辞書 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 フック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 へ ヘルプ表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ま 交ぜ書き入力モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 交ぜ書き変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 —インクリメンタルサーチ . . . . . . . . . . . . . . . . . . . . . . . . . . 15 —開始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 —活用語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 —後置型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 —候補選択モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 —候補の選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 —削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 —辞書 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 —辞書作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 —辞書のパス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 —前置型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 —中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 —登録 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 —補完 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 み ミニバッファでの入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 む 無連想式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 め メーリングリスト. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 も 文字表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 れ 連想式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

関数と変数索引 37

関数と変数索引

I

isearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 isearch-fep-string. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 isearch-forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 isearch-toggle-tcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

S

set-tcode-mode-key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

T

tcode-adjust-window-for-help . . . . . . . . . . . . . . . . . . . 22
tcode-after-load-table-hook . . . . . . . . . . . . . . . . . . . . 23

tcode-auto-help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

tcode-auto-identify-kutouten-mode-list. . . . . . . . 19
tcode-auto-remove-help-count . . . . . . . . . . . . . . . . . . . 22
tcode-auto-switch-kutouten . . . . . . . . . . . . . . . . . . . . . 19
tcode-bushu-dictionary-name . . . . . . . . . . . . . . . . . . . . 20

tcode-bushu-on-demand. . . . . . . . . . . . . . . . . . . . . . . . . 8, 21 tcode-bushu-ready-hook . . . . . . . . . . . . . . . . . . . . . . . . . . 23 tcode-clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 tcode-compose-chars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 tcode-data-directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 tcode-display-help-delay. . . . . . . . . . . . . . . . . . . . . . . . 22 tcode-electric-comma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 tcode-electric-space . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

tcode-electric-space-without-inserting. . . . . . . . 17
tcode-enable-cursor-to-change-color . . . . . . . . . . . 16
tcode-insert-kanji-by-jis-code . . . . . . . . . . . . . . . . . 18
tcode-insert-kanji-by-kuten-code . . . . . . . . . . . . . . 18

tcode-insert-ya-outset . . . . . . . . . . . . . . . . . . . . . . . . . . 18

tcode-isearch-enable-wrapped-search . . . . . . . . . . . 23

tcode-isearch-start-state . . . . . . . . . . . . . . . . . . . 15, 22
tcode-katakana-previous-char . . . . . . . . . . . . . . . . . . . 18
tcode-kutouten-regexp-alist . . . . . . . . . . . . . . . . . . . . 19

tcode-load-immediate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

tcode-mazegaki-dictionary-name . . . . . . . . . . . . . . . . . 20
tcode-mazegaki-enable-variable-yomi-postfix . . 21
tcode-mazegaki-gakusyu-kouho-offset . . . . . . . . . . . 21

tcode-mazegaki-init-hook. . . . . . . . . . . . . . . . . . . . . . . . 23

tcode-mazegaki-priority-list . . . . . . . . . . . . . . . . . . . 21
tcode-mazegaki-reverse-yomi-jisho . . . . . . . . . . . . . 22
tcode-mazegaki-show-yomi-region. . . . . . . . . . . . . . . . 18

tcode-mazegaki-yomi-max . . . . . . . . . . . . . . . . . . . . . . . . . 21 tcode-mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 tcode-mode-hook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

tcode-mode-off-cursor-color . . . . . . . . . . . . . . . . . . . . 16
tcode-mode-on-cursor-color . . . . . . . . . . . . . . . . . . . . . 16
tcode-read-bushu-dictionary . . . . . . . . . . . . . . . . . . . . . 9

tcode-ready-hook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 tcode-record-file-name . . . . . . . . . . . . . . . . . . . . . . . . . . 20

tcode-self-inserting-commands . . . . . . . . . . . . . . . . . . 23
tcode-set-action-to-table . . . . . . . . . . . . . . . . . . . 25, 26

tcode-switch-table-list . . . . . . . . . . . . . . . . . . . . . . . . . . 6 tcode-table-file-name . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 tcode-toggle-hook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 tcode-transpose-strokes . . . . . . . . . . . . . . . . . . . . . . . . . . 7

tcode-use-egg-in-mazegaki . . . . . . . . . . . . . . . . . . . 15, 21

tcode-use-egg-in-mazegaki. . . . . . . . . . . . . . . . . . . . . . . . . . 32

tcode-use-postfix-bushu-as-default . . . . . . . . . . . . 21
tcode-use-prefix-mazegaki. . . . . . . . . . . . . . . . . . . . . . . 21

tcode-verbose-message . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 tcode-ya-outset-map-list. . . . . . . . . . . . . . . . . . . . . . . . 18 toggle-input-method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

目次

1 T-Code とは. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 2 ストローク入力とは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 T-Code で使用するキーボード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 ストローク表の見方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 T-Code 情報の入手方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

T-Code メーリングリスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ニフティサーブ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 T-Code ソフトウェアの入手方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 インストール. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1 パッケージの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 インストールの方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 T-Code を使う. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1 使用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 部首変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2.1 部首変換とは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.2 ‘tc.el’ での部首変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.3 部首変換辞書 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3 交ぜ書き変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.3.1 交ぜ書き変換とは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.3.2 tc.el での交ぜ書き変換—後置型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3.2.1 候補の選択法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3.2.2 活用する語に対する変換候補の検索法 . . . . . . . . . . . . . . . 11 3.3.2.3 活用する語を変換する際の注意点. . . . . . . . . . . . . . . . . . . 11 3.3.2.4 文字数を指定した交ぜ書き変換. . . . . . . . . . . . . . . . . . . . . 12

3.3.3 ‘tc.el’ での交ぜ書き変換—前置型 . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.4 読みの補完 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.5 交ぜ書き変換辞書の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3.5.1 交ぜ書き変換辞書への登録. . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.5.2 交ぜ書き変換辞書からの削除. . . . . . . . . . . . . . . . . . . . . . . 14

3.3.6 ‘tc.el’ での交ぜ書き変換—Egg を使用する場合. . . . . . . . . . . . . . . 15 3.4 インクリメンタルサーチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5 様々なヘルプ機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.6 その他の補助機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.6.1 カーソルの色でモードを表す機能. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.6.2 コントロールキーを伴わないモード切り替え . . . . . . . . . . . . . . . . . . 17 ii T-Code ドライバマニュアル

3.6.3 もう一つの外字入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.6.4 漢字に対する交ぜ書き変換辞書中の読みの表示 . . . . . . . . . . . . . . . . 18 3.6.5 ひらがなからカタカナへの変換. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.6.6 区点コード・ JIS コードによる文字の入力 . . . . . . . . . . . . . . . . . . . . 18 3.6.7 句読点自動切り替え . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4 カスタマイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.1 個人設定用ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2 ユーザ変数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

パス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 部首変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 交ぜ書き変換. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 ヘルプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 インクリメンタルサーチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 その他 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.3 フック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.4 キー割り当ての変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.4.1 T-Code モード切り替えキーの変更 . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.4.2 入力文字と仮想鍵盤との対応 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.4.3 T-Code モードでのキー割り当ての変更 . . . . . . . . . . . . . . . . . . . . . . 25 4.4.4 コード入力に対する動作の変更. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.5 個人用設定ファイルの見本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5 TUT-Code で入力するには. . . . . . . . . . . . . . . . . . . . . . . . . . 30

5.1 TUT-Code 用の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.2 各機能の割り当て . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6 補助ソフトウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

6.1 Tchart: T-Code 表を印刷する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.2 打ち方表作成プログラム hasida-table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.3 T-Code 練習プログラム EELLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.4 T-Code 練習プログラム DOGGG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.5 交ぜ書き変換辞書の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6.5.1 キットの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.5.2 交ぜ書き変換辞書の作り方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.5.3 ‘pd kihon.yom’ の作り方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6.6 kinput2 を利用するには . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

概念索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

関数と変数索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37