% Copyright 1994 NEC Corporation, Tokyo, Japan.
%
% Permission to use, copy, modify, distribute and sell this software
% and its documentation for any purpose is hereby granted without
% fee, provided that the above copyright notice appear in all copies
% and that both that copyright notice and this permission notice
% appear in supporting documentation, and that the name of NEC
% Corporation not be used in advertising or publicity pertaining to
% distribution of the software without specific, written prior
% permission.  NEC Corporation makes no representations about the
% suitability of this software for any purpose.  It is provided "as
% is" without express or implied warranty.
%
% NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
% INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 
% NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
% CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 
% USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 
% OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
% PERFORMANCE OF THIS SOFTWARE. 
%
% $Id: customex.tex,v 2.5 1994/06/01 06:32:57 kuma Exp $
%
\chapter{\HIDX{カスタマイズファイルの例}{かすたまいすふあいるのれい}
{H0.F.0.0.0}}
\label{Fカスタマイズファイルの例}

以下にカスタマイズファイルの例としてunix.cannaおよびjust.cannaを示しま
す。それぞれのファイルは\refCANNALIBDIR /sampleの下に存在しますので実際
に環境変数CANNAFILEで指定するなどして試してみてください。

%\begin{enumerate}
% --------------------------------(1) 
%\item {\tt unix.canna} \\
\section{\HIDX{unix.canna}{ＵＮＩＸ．ＣＡＮＮＡ}{H0.F.1.0.0}ファイル}

根っからの UNIX ユーザには default.canna よりも unix.canna の方が馴染
みやすいと思われます。数字などのデフォルトを半角文字にしています。

\begin{verbatim}
;; 記号置き換え変換を利用するか。

(setq use-symbolic-definition t)

;;; ローマ字かな変換の設定
;
; ローマ字かな変換テーブルを指定します。ローマ字かな変換テーブルは
; (1) カレントディレクトリ
; (2) ホームディレクトリ
; (3) /usr/lib/canna/dic
; の順にサーチされます。
;

;(setq romkana-table "unix.kp")
(setq romkana-table "default.kp")

;; 外来語変換
;(setq english-table "canna/english.kp")


;;; 利用する辞書
;
; ただ単に書き並べているのは単語登録を行わない辞書でシステム辞書などが
; これに当たります。
;
; 部首辞書に関しては :bushu を先行させて記述します。
;
; 単語登録をしたい辞書に関しては :user を先行させて記述します。単語登
; 録をする辞書はテキスト形式辞書でなければなりません。単語登録させたい
; 辞書は mkdic user のようなコマンドを打つことでで簡単に作成することがで
; きます。
;
(use-dictionary
 "iroha"
 "fuzokugo"
 "hojomwd"
 "hojoswd"
 :bushu "bushu"
 :user  "user"
 )

;;; さまざまなパラメタの設定
;
; 真理値を設定するものについては真については t 、偽については nil を設
; 定します。

; 一番右で右に行こうとすると左端にいくようにするか
(setq cursor-wrap          t)	; default t

; 一覧表示で数字を打ったときにカーソル移動に留める(nil)か選択までして
; しまうか(t)
(setq select-direct        t)	; default t

; 一覧表示で数字で選択するか(t)。nilの時は数字が表示されません
(setq numerical-key-select t)	; default t

; 候補表示時に文節の区切りに空白をいれるか
(setq bunsetsu-kugiri nil)      ; default nil

; 文字ベースの移動をするか(t)。 nilの時はローマ字かな変換の単位でカー
; ソル移動が行われます。
(setq character-based-move t)	; default t

; 入力中の読み全体をリバースするか
(setq reverse-widely       nil)	; default nil

; 頻度学習をするか
(setq gakushu              t)	; default t

; 一覧の最後までいったらいったん一覧表示をやめるか
(setq quit-if-end-of-ichiran nil); default nil

; 文節の右端で右移動をすると全体が確定してしまうか
(setq kakutei-if-end-of-bunsetsu nil) ; default nil

; 一覧選択後同じ文節にとどまるか(t)。nilの時は一覧選択を行うと1つ先
; の文節に移動します。
(setq stay-after-validate  t)	; default t

; 読みを入力中にバックスペースを打つとローマ字までバラバラにするか
(setq break-into-roman     t)	; default nil

; 何回の変換キーで一覧表示を行うか。０を入れると変換キーだけでは
; 一覧表示には移りません。その場合には C-w を入力して一覧表示して
; ください。
(setq n-henkan-for-ichiran 2)	; default 2

; 単語登録時に文法関連の質問をするか(t)。nilの時は適当な品詞を付けてし
; まいます。
(setq grammatical-question  t)	; default t

; 候補が全体の何番目かを表示するか
(setq kouho-count t)            ; default t

; 逐次変換をするか
(setq auto nil)                 ; default nil

; 逐次変換をする時に何個の文節までを未確定で保持するか
(setq n-kouho-bunsetsu 16)      ; default 16

; ローマ字かな変換でイリーガルなローマ字を捨てるか
(setq abandon-illegal-phonogram nil)              ; default nil

; 一覧の時も次の入力を認めるか
(setq allow-next-input 		 t)	; default nil

; 一文字レベルのローマ字かな変換の補助テーブル
(if use-symbolic-definition
    (progn
      (defsymbol ?-  "ー" "-" "−" "‐")
      (defsymbol ?/  "/"  "／"  "・")
      (defsymbol ?\\ "\\" "＼"  "￥")
      (defsymbol
	?( "(" "（" "【"
	?) ")" "）" "】" )
      (defsymbol 
	?[ "「" "『" "［" "〔" "["
	?] "」" "』" "］" "〕" "]")
      (defsymbol 
	?. "。" "．" "."
	?, "、" "，" "," )
      (defsymbol
	?0 "0" "０" "〇" "零"
	?1 "1" "１" "一" "壱"
	?2 "2" "２" "二" "弐"
	?3 "3" "３" "三" "参"
	?4 "4" "４" "四" "四"
	?5 "5" "５" "五" "伍"
	?6 "6" "６" "六" "六"
	?7 "7" "７" "七" "七"
	?8 "8" "８" "八" "八"
	?9 "9" "９" "九" "九" )
      (defsymbol
	?? "?" "？"
	?! "!" "！")
      (defsymbol ?# "#" "＃")
      (defsymbol ?$ "$" "＄")
      (defsymbol ?% "%" "％")
      (defsymbol ?& "&" "＆")
      (defsymbol ?+ "+" "＋")
      (defsymbol ?* "*" "＊" "×")
      (defsymbol ?_ "_" "＿")
      (defsymbol ?' "'" "’")
      (defsymbol ?` "`" "‘")
      (defsymbol ?\" "\"" "”")
      ))

;; delete キーもバックスペースと同じ処理をさせる
(global-set-key "\Delete" 'delete-previous) ; necessary in using Emacs

;; Help がない人もいるので F1 でも同じ動作をさせる。
(global-set-key "\F1" 'extend-mode)
\end{verbatim}
\newpage

% --------------------------------(2) 
%\item {\tt just.canna} \\
\section{\HIDX{just.canna}{ＪＵＳＴ．ＣＡＮＮＡ}{H0.F.2.0.0}ファイル}

一太郎\footnote{一太郎はジャストシステム(株)の商標です}における日本語
入力操作をシミュレートするカスタマイズファイルです。ローマ字かな変換テー
ブルに専用のテーブルを使っています。また、主に以下のような操作法を提供
しています。

{\tt
\begin{center}
\begin{tabular}{|c|l|}
\hline
キー     &  機能 \\
\hline
Space    &  変換 \\
\hline
Return   &  確定 \\
\hline
C-u      &  ひらがな変換 \\
\hline
C-i      &  カタカナ変換 \\
\hline
C-o      &  半角変換 \\
\hline
C-p      &  ローマ字 \\
\hline
C-n      &  右文節移動 \\
\hline
→、C-l  &  右移動、文節伸ばし \\
\hline
←、C-k  &  左移動、文節縮め \\
\hline
↓       &  確定 \\
\hline
\end{tabular}
\end{center}
}

{\dg ;; 一太郎での入力の操作方法をシミュレートするためのカスタマイズファイル}

\begin{verbatim}
;(setq initial-mode 'han-alpha-kakutei-mode)

(setq romkana-table "just.kp")

(use-dictionary
 "iroha"
 "fuzokugo"
 "hojomwd"
 "hojoswd"
 :bushu "bushu"
 :user "user"
 )

(setq cursor-wrap            nil) ; default on
(setq select-direct          t)   ; default on
(setq numerical-key-select   t)   ; default on
(setq character-based-move   nil) ; default on
(setq reverse-widely         nil) ; default off
(setq break-into-roman       nil) ; default off
(setq stay-after-validate    nil) ; default on
(setq quit-if-end-of-ichiran t)   ; default off
(setq kakutei-if-end-of-bunsetsu t) ; default off
(setq n-henkan-for-ichiran   2)   ; default 2
(setq inhibit-list-callback  t)   ; default off
(setq kouho-count            t)   ; default off

;;  setting for keymapping

(global-unbind-key-function 'quoted-insert)
(global-unbind-key-function 'extend)
(global-unbind-key-function 'shrink)
(global-unbind-key-function 'quoted-insert)
(global-unbind-key-function 'forward)
(global-unbind-key-function 'backward)
(global-unbind-key-function 'previous)
(global-unbind-key-function 'next)
(global-unbind-key-function 'beginning-of-line)
(global-unbind-key-function 'end-of-line)
(global-unbind-key-function 'kill-to-end-of-line)

;(global-unbind-key-function 'alpha-mode)
;(global-unbind-key-function 'japanese-mode)
;(global-unbind-key-function 'henkan)
;(global-unbind-key-function 'quit)
;(global-unbind-key-function 'deleteNext)

(global-set-key "\C-l"      'extend)
(global-set-key "\C-k"      'shrink)
(global-set-key "\Right"    'forward)
(global-set-key "\Left"     'backward)
(global-set-key "\Up"       'previous)
(global-set-key "\Down"     'next)
(global-set-key "\C-["      'quit)

(set-key 'empty-mode "\F10"       'kigo-mode)
(set-key 'kigo-mode  "\F10"       'henkan-nyuuryoku-mode)

(let ((mode 'yomi-mode))
  (set-key mode "\C-u" 'hiragana)
  (set-key mode "\F6"  'hiragana)
  (set-key mode "\C-i" 'katakana)
  (set-key mode "\F7"  'katakana)
  (set-key mode "\C-o" 'hankaku)
  (set-key mode "\F8"  'hankaku)
  (set-key mode "\C-p" 'romaji)
  (set-key mode "\F9"  'romaji)
  (set-key mode "\C-l" 'forward)
  (set-key mode "\Right" 'forward)
  (set-key mode "\C-k"   'backward)
  (set-key mode "\Left" 'backward)
  (set-key mode "\C-n"  'kakutei)
  (set-key mode "\Down" 'kakutei)
  )

(let ((mode 'tan-kouho-mode))
  (set-key mode "\C-u" 'hiragana)
  (set-key mode "\F6"  'hiragana)
  (set-key mode "\C-i" 'katakana)
  (set-key mode "\F7"  'katakana)
  (set-key mode "\C-o" 'hankaku)
  (set-key mode "\F8"  'hankaku)
  (set-key mode "\C-p" 'romaji)
  (set-key mode "\F9"  'romaji)
  (set-key mode "\C-n" 'forward)
  (set-key mode "\Down" 'forward)
  (set-key mode "\C-l" '(shinshuku-mode extend))
  (set-key mode "\C-k" '(shinshuku-mode shrink))
  (set-key mode "\Right" '(shinshuku-mode extend))
  (set-key mode "\Left"  '(shinshuku-mode shrink))
  (set-key mode "\Up"  'previous)
  )

(let ((mode 'mojishu-mode))
  (set-key mode "\C-u" 'hiragana)
  (set-key mode "\F6"  'hiragana)
  (set-key mode "\C-i" 'katakana)
  (set-key mode "\F7"  'katakana)
  (set-key mode "\C-o" 'hankaku)
  (set-key mode "\F8"  'hankaku)
  (set-key mode "\C-p" 'romaji)
  (set-key mode "\F9"  'romaji)
  (set-key mode "\C-l" 'extend)
  (set-key mode "\Right" 'extend)
  (set-key mode "\C-k"  'shrink)
  (set-key mode "\Left" 'shrink)
  (set-key mode "\C-n"  'kakutei)
  (set-key mode "\Down" 'kakutei)
  )

(let ((mode 'ichiran-mode))
  (set-key mode "\Xfer"  'next)
  (set-key mode "\C-l"   'forward)
  (set-key mode "\Right"  'forward)
  (set-key mode "\C-k"   'backward)
  (set-key mode "\Left"  'backward)
  (set-key mode "\C-n"   'next)
  (set-key mode "\Down"  'next)
  (set-key mode "\Up"    'previous)
;;  Please put off comment character below
;;  if you do not use Extend mode well.
;  (set-key mode "\C-n"   'kakutei)
;  (set-key mode "\Right" '(quit shinshuku-mode extend))
;  (set-key mode "\C-l"   '(quit shinshuku-mode extend))
;  (set-key mode "\Left"  '(quit shinshuku-mode shrink))
;  (set-key mode "\C-k"   '(quit shinshuku-mode shrink))
;  (set-key mode "\Up"    'backward)
  )
(let ((mode 'shinshuku-mode))
  (set-key mode "\C-u" '(henkan hiragana))
  (set-key mode "\F6"  '(henkan hiragana))
  (set-key mode "\C-i" '(henkan katakana))
  (set-key mode "\F7"  '(henkan katakana))
  (set-key mode "\C-o" '(henkan hankaku))
  (set-key mode "\F8"  '(henkan hankaku))
  (set-key mode "\C-p" '(henkan romaji))
  (set-key mode "\F9"  '(henkan romaji))
  )
\end{verbatim}

%\end{enumerate}







