-*- mode: outline -*-


このディレクトリには SKK の仮名入力対応コードを置いています。


* 概要

SKK をローマ字的入力以外の入力方式に対応させることを目的とします。現在
は以下の入力方式について、サポートするべく開発しています。

o 日本語 106 キーボードでの仮名入力

o 親指シフトキーボードのエミュレーション

後者については、 箕浦逸史さん作の NICOLA-SKK 0.39 を基にして開発を進め
ています。というよりこちらが主力です。

なお、 TUT-code 入力のサポートは別に開発されており、そのソースコードは
SKK の experimental repository にあります。


* ステータス

Beta.


* サポートする Emacsen

同梱のバージョンの SKK がサポートするもの。

以下のものは正式対応です。

o Emacs 20.7 以降

  (対応するバージョンの Meadow を含む)

o XEmacs 21.4.x


* ファイル

o skk-kanagaki.el … 仮名入力のための基本的な枠組み

o skk-106-jis.el  … 日本語 106 キーボードで仮名入力するためのルール

o skk-nicola.el   … 親指シフト入力をエミュレートする関数  (オリジナル
                     の skk-nicola.el に書かれていた関数)

o skk-nicola-*.el … NICOLA 配列のルール (JIS, US, Dvorak, Colemak)

o skk-oasys.el    … OASYS 風配列のルール

o skk-omelet-*.el … omelet 独自配列のルール (JIS, US, Dvorak, Colemak)


skk-nicola-*.el, skk-oasys.el, skk-omelet-*.el の配列はすべて

http://www.eva.hi-ho.ne.jp/%7Eminoura/kbd/keymap.html

のものを利用させていただきました。


* インストール

** 使用する環境

   o GNU Emacs 21 を使用する場合は APEL と DDSKK 14.4 をインストールして
     ください。

   o GNU Emacs 22 以降を使用する場合は APEL は不要です。最新版の DDSKK
     をインストールしてください。

   o XEmacs を使用する場合は APEL と最新版の DDSKK をインストールしてく
     ださい。

** APEL の最新版をインストール

   http://git.chise.org/elisp/apel/

   % make install (XEmacs では make install-package)

** SKK をインストール

   [方法 1]

   % cvs -d :pserver:guest@openlab.ring.gr.jp:/circus/cvsroot login

   CVS password: guest (CR)

   % cvs -d :pserver:guest@openlab.ring.gr.jp:/circus/cvsroot \
   co skk/main

   [方法 2]

   http://openlab.ring.gr.jp/skk/

** NICOLA-DDSKK のインストール

   必ず、上でインストールした SKK に同梱されている NICOLA-DDSKK をイン
   ストールしてください。つまり、SKK をバージョンアップしたら必ず
   NICOLA-DDSKK をインストールし直してください。

   % cd nicola
   % make install (XEmacs では make install-package)


* 設定

** SKK の設定

   ~/.emacs に

     (require 'skk-setup)

   と記入。

** NICOLA-DDSKK の設定

   親指シフト入力する場合は ~/.skk に

     (setq skk-use-kana-keyboard t)
     (setq skk-kanagaki-keyboard-type 'omelet-jis)

   と記入。旧 JIS 配列の仮名入力を行う場合は

     (setq skk-use-kana-keyboard t)
     (setq skk-kanagaki-keyboard-type '106-jis)

   と記入。

** カスタマイズ

   skk-kanagaki-keyboard-type に対応したファイルに書かれている変数によっ
   て、キー入力と挿入される文字のルールを変更します。

   例えば skk-kanagaki-keyboard-type が omelet-jis であれば、
   skk-omelet-jis.el に書かれている以下の変数を設定します。

   `skk-kanagaki-omelet-jis-base-rule-list'

        この変数は、各文字キーの入力を SKK にどう解釈させるかを決定し
        ます。標準設定では、多くの文字キーは関数 `skk-nicola-insert'
        を呼び出します。

   `skk-omelet-jis-plain-rule-list'
   `skk-omelet-jis-rshift-rule-list'
   `skk-omelet-jis-lshift-rule-list'

        これらの変数は、関数 `skk-nicola-insert' が文字を挿入する際の
        ルールを決定します。順に単独打鍵、右シフト入力、左シフト入力の
        ルールです。

   これらの設定をファイル ~/.skk に記述してから SKK を起動すれば、設定
   が反映されます。

* 使用法

親指シフト入力についての詳しいことは、README.NICOLA.ja をご一読くださ
い。

それ以外の仮名入力について詳しいことは skk-kanagaki.el の冒頭のコメン
トをご一読ください。

以下で、[fj] などというのは f と j とを同時に打鍵することを意味します。

** 一般的キー定義

   [fj]     … 変換開始点をセット
   [gh]     … 接頭辞 or 接尾辞変換 (▽モード or ▼モード)
   [gh]     … abbrev モード
   [dk]     … カナモード or カナ変換
   space    … 送りなし変換開始、変換・次候補表示
   x        … 前候補表示
   S (SHIFT + s) … 送りあり変換開始
   C-h 1    … ヘルプを表示

** 親指シフト入力モードの独自キー定義

   muhenkan … 左親指シフトキー
   henkan   … 右親指シフトキー
   space    … 右親指シフトキー
   [fj]     … 送り開始点指定
   [muhenkan + henkan] … latin モード ⇔ かなモードの切り替え
   C-h 2    … 現在の入力方式のキー配列を表示
   C-h 3    … ヘルプを表示

** 旧 JIS 仮名入力モードの独自キー定義

   [fj]     … 直前の 1 文字を送り仮名として送りあり変換を開始。
   [muhenkan + henkan] … latin モード ⇔ かなモード の切り替え
   C-h 2    … 現在の入力方式のキー配列を表示
   C-h 3    … ヘルプを表示

** 特殊機能の退避キー

   f2 … 変換開始点をセット
   f3 … 接頭辞 or 接尾辞変換
   f5 … コード入力
   f6 … abbrev モード
   f7 … カナモード or カナ変換
   f8 … 全英モード
   f9 … 半角カナモード or 半角カナ変換
   f10 … latin モード
   f12 … ローマ字入力 ⇔ 仮名入力

* 問題点

親指シフト入力は、 まだ NICOLA-SKK と挙動の異なる部分があります。 問題
は多くありますが、徐々に改良する予定です。また、omelet 及び NICOLA-SKK
との互換性を十分考慮していない部分があります。

日本語 106 キーボードで仮名入力する場合、 キー配列の関係で「ー」か「ろ」
のいずれかが犠牲にならなければなりません。デフォルトでは、「ー」を犠牲
にしてあります (SHIFT と共に押せば入力できるようにしてあります)。これ
を刻印通りの入力にするには、 xmodmap を使うなどしてキー配列を変更する
必要があります。

* 謝辞

NICOLA-SKK 原作者の箕浦さんに敬意を表し，また感謝いたします。

* 後日談 (2004-03-10)

実は、SKK のモデルとなったかな漢字変換システムである Kanzen は標準でロー
マ字式入力と新 JIS 配列かな入力に対応していたようです。(旧ではなくて新
なところがあれですが...)

   http://www.nue.org/people/amagai/kanzen/index.html

