uim-1.4.1のtutcode.scmに部首合成変換と交ぜ書き変換機能を追加しました。
http://www1.interq.or.jp/~deton/tutcode/uim-tutcode-20070510.tar.bz2
* 部首合成変換 ("シ"+"談"→"淡"のように漢字の部首を組み合わせる変換)
前置型のみ実装しています。
再帰的な部首合成変換も可能です。(例:▲▲七上→▲虍リ→劇)
部首合成のアルゴリズムはtc-2.1のものです。
* 交ぜ書き変換 ("か定"→"仮定"のように漢字交じりの読みからのかな漢字変換)
単純な前置型交ぜ書き変換ができます。
交ぜ書き変換辞書はtc2と同じ形式(SKK辞書と同様の形式)です。
skk.scmから、かな漢字変換に関係する部分を取り込んで実現しています。
** 交ぜ書き変換辞書(例:/usr/local/share/tc/mazegaki.dic)へのアクセスは
libuim-skk.soの機能を使っています。
そのため、学習機能もSKKと同様の動作になります:
確定した候補は次回の変換から先頭に来ます。
確定した候補は個人辞書(~/.mazegaki.dic)に保存されます。
** 活用する語の変換は自動的には行いません。
読みに明示的に"―"を付加して変換してください。
** 交ぜ書き変換関係の未実装の機能
- 後置型交ぜ書き変換
- 交ぜ書き変換辞書への登録・削除、
- 読みを伸ばしたり縮めたりする機能、読みの補完機能
- 候補選択ウィンドウの使用
* uim-tutcodeで、T-Code等のコード表も使えます。
uim-pref-gtk等で設定するか、~/.uimで以下のように設定してください。
(define tutcode-rule-filename "/usr/local/share/uim/tcode.scm")
(define tutcode-mazegaki-start-sequence "fj")
(define tutcode-bushu-start-sequence "jf")
* vi使用時の利便性のため、ESCキーでTUT-Codeをオフにする設定を追加:
tutcode-use-with-vi?
# {anthy,canna,mana,skk}-use-with-vi?やbyeoru-esc-turns-off?と同様
* Dvorakキーボードを使うかどうかの設定を追加: tutcode-use-dvorak?
(TUT-Code/T-Codeではキーの値ではなく、
キーボード上のキーの位置の情報(キー番号)を使います。
つまり、QwertyでもDvorakでも同じ指の動きで漢字が入力できます。)
現状のuim-tutcodeのコード表はQwertyで記述しており、
Dvorak使用設定時にはこの表をDvorak用に変換して登録するようにしました。
(例:Qwertyでのキーqの位置にはDvorakでは'があるので表中の"q"を"'"に変換)
# tutcode.scmの前段階でキー番号への変換処理を入れる方が自然かもしれません。
* インストール・設定方法
1.以下の5ファイルを、uimの*.scmがある場所(例:/usr/local/share/uim)に
置いてください。
tutcode-bushudic.scm tutcode-key-custom.scm tutcode.scm
tutcode-custom.scm tutcode-rule.scm
2.交ぜ書き変換辞書ファイルのパスをuim-pref-gtk等で設定するか、
~/.uimで以下のように設定してください。
(define tutcode-dic-filename "/opt/sfw/share/tc/mazegaki.dic")
デフォルトでは、/usr/local/share/tc/mazegaki.dic あたりになります。
交ぜ書き変換辞書はtc2<http://openlab.jp/tcode/tc2/>に含まれるものと
同じ形式の辞書を使ってください。
* 変更点や実装上考慮した点
** TUT-Codeのコード表をtutcode.scmから分離してtutcode-rule.scmを作成。
他の漢字直接入力(T-Code,Try-Code,TT-Code,G-Code等)でも
交ぜ書き変換や部首合成変換を使えるようにするため。
** 交ぜ書き変換はlibuim-skk.soを使用。
交ぜ書き変換辞書の形式がSKK辞書と同様の形式なので、流用が可能なため。
ただし、学習動作がSKKの動作になるが、あまり問題にならないはず。
** 交ぜ書き辞書はSKKの共用辞書としてアクセスする設定をデフォルトにした。
交ぜ書き辞書はもともと個人ごとに作る辞書なので、
SKKの個人辞書として設定するのが自然だが、メモリ使用量が増えてしまうので。
** 部首合成変換辞書をtutcode-bushudic.scmとして作成。
C言語で実装するよりもSchemeで実装する方が楽そうだったので。
ただし、変換が少し遅い印象も。
** ~/.uimでのコード表の一部変更の方法を変更。
以下のようにtutcode-rule-set-sequences!を使ってください。
(tutcode-rule-set-sequences! '(((("w" " "))("〜"))
((("s" " "))("―"))))
TUT-Codeでは記号部分の割り当ては変更するのが前提になっているので、
~/.uimでの設定を容易にするためにこの手続きを用意しました。
* TODO
** 一覧表からの記号入力
** 交ぜ書き変換候補選択の強化(候補選択ウィンドウを使うようにする)
ちなみに、tc2に合わせるなら以下のようになりますが、優先度は低いです。
候補数2 △{勘定,鑑定}
候補数10以下 △[- 泡 阿波 粟] - - [- - - -]
候補数11以上 (仮想鍵盤ウィンドウで以下のように表示)
- - - - - - - - - -
[孔 幸 厚 黄 ] 逅 鈎 [ 肛 浩 袷 恰]
[頁 煌 候 稿 ] 項 耕 [ 膠 淆 功 侯]
[- - - - ] - - [ - - - -] (1/5)
** ヘルプ機能(仮想鍵盤表示/ストローク表表示/文字ヘルプ)
(漢索窓相当の独立アプリ?)
** 後置型部首合成/交ぜ書き変換
** その他tc2や漢直Win<http://www.sato.kuis.kyoto-u.ac.jp/~yuse/tcode/kw/>
にある機能の実装
--
木原 英人 / KIHARA, Hideto / [EMAIL PROTECTED]
http://www1.interq.or.jp/~deton/
_______________________________________________
Anthy-dev mailing list
[email protected]
http://lists.sourceforge.jp/mailman/listinfo/anthy-dev