Info file: skk.info,    -*-Text-*-
produced by `texinfo-format-buffer'
from file `skk.texi'
using `texinfmt.el' version 2.37 of 24 May 1997.






File: skk.info, Node: Top, Next: 配布条件, Prev: (dir), Up: (dir)

SKK
***

This is Edition 1.2, last updated Feb 26 1997, of `The SKK Manual', for
SKK, Version 9.6.

* Menu:

* 概要::                        
* インストール::                
* 基本的な使用方法::            
* 便利な応用機能とユーザーオプション::  
* 辞書ユーティリティプログラム::  
* 拡張アイディア::              
* SKKメーリングリスト::         
* SKKの入手方法::               
* SKK関連ソフトウェア::         
* 謝辞とお願い::                
* 事項索引::                    
* 変数索引::                    
* 関数索引::                    
* キー索引::                    

Copyright (C) 1996 1991, 1992, 1993, 1994, 1996, 1997 Masahiko Sato,
Yukiyoshi Kameyama and Mikio Nakajima.  Revised by Kiyotaka Sakai and
Satoshi Harauchi.

Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that the
sections entitled "Copying" and "GNU General Public License" are
included exactly as in the original, and provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation
approved by the Free Software Foundation.



File: skk.info, Node: 配布条件, Next: 概要, Prev: Top, Up: Top


GNU GENERAL PUBLIC LICENSE
**************************
                          Version 2, June 1991

     Copyright (C) 1989, 1991 Free Software Foundation, Inc.
     675 Mass Ave, Cambridge, MA 02139, USA

     Everyone is permitted to copy and distribute verbatim copies
     of this license document, but changing it is not allowed.


Preamble
========

  The licenses for most software are designed to take away your freedom
to share and change it.  By contrast, the GNU General Public License is
intended to guarantee your freedom to share and change free software--to
make sure the software is free for all its users.  This General Public
License applies to most of the Free Software Foundation's software and
to any other program whose authors commit to using it.  (Some other Free
Software Foundation software is covered by the GNU Library General
Public License instead.)  You can apply it to your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it if
you want it, that you can change the software or use pieces of it in new
free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  1. This License applies to any program or other work which contains a
     notice placed by the copyright holder saying it may be distributed
     under the terms of this General Public License.  The "Program",
     below, refers to any such program or work, and a "work based on the
     Program" means either the Program or any derivative work under
     copyright law: that is to say, a work containing the Program or a
     portion of it, either verbatim or with modifications and/or
     translated into another language.  (Hereinafter, translation is
     included without limitation in the term "modification".)  Each
     licensee is addressed as "you".

     Activities other than copying, distribution and modification are
     not covered by this License; they are outside its scope.  The act
     of running the Program is not restricted, and the output from the
     Program is covered only if its contents constitute a work based on
     the Program (independent of having been made by running the
     Program).  Whether that is true depends on what the Program does.

  2. You may copy and distribute verbatim copies of the Program's source
     code as you receive it, in any medium, provided that you
     conspicuously and appropriately publish on each copy an appropriate
     copyright notice and disclaimer of warranty; keep intact all the
     notices that refer to this License and to the absence of any
     warranty; and give any other recipients of the Program a copy of
     this License along with the Program.

     You may charge a fee for the physical act of transferring a copy,
     and you may at your option offer warranty protection in exchange
     for a fee.

  3. You may modify your copy or copies of the Program or any portion of
     it, thus forming a work based on the Program, and copy and
     distribute such modifications or work under the terms of Section 1
     above, provided that you also meet all of these conditions:

       a. You must cause the modified files to carry prominent notices
          stating that you changed the files and the date of any change.

       b. You must cause any work that you distribute or publish, that
          in whole or in part contains or is derived from the Program or
          any part thereof, to be licensed as a whole at no charge to
          all third parties under the terms of this License.

       c. If the modified program normally reads commands interactively
          when run, you must cause it, when started running for such
          interactive use in the most ordinary way, to print or display
          an announcement including an appropriate copyright notice and
          a notice that there is no warranty (or else, saying that you
          provide a warranty) and that users may redistribute the
          program under these conditions, and telling the user how to
          view a copy of this License.  (Exception: if the Program
          itself is interactive but does not normally print such an
          announcement, your work based on the Program is not required
          to print an announcement.)

     These requirements apply to the modified work as a whole.  If
     identifiable sections of that work are not derived from the
     Program, and can be reasonably considered independent and separate
     works in themselves, then this License, and its terms, do not apply
     to those sections when you distribute them as separate works.  But
     when you distribute the same sections as part of a whole which is a
     work based on the Program, the distribution of the whole must be on
     the terms of this License, whose permissions for other licensees
     extend to the entire whole, and thus to each and every part
     regardless of who wrote it.

     Thus, it is not the intent of this section to claim rights or
     contest your rights to work written entirely by you; rather, the
     intent is to exercise the right to control the distribution of
     derivative or collective works based on the Program.

     In addition, mere aggregation of another work not based on the
     Program with the Program (or with a work based on the Program) on a
     volume of a storage or distribution medium does not bring the other
     work under the scope of this License.

  4. You may copy and distribute the Program (or a work based on it,
     under Section 2) in object code or executable form under the terms
     of Sections 1 and 2 above provided that you also do one of the
     following:

       a. Accompany it with the complete corresponding machine-readable
          source code, which must be distributed under the terms of
          Sections 1 and 2 above on a medium customarily used for
          software interchange; or,

       b. Accompany it with a written offer, valid for at least three
          years, to give any third party, for a charge no more than your
          cost of physically performing source distribution, a complete
          machine-readable copy of the corresponding source code, to be
          distributed under the terms of Sections 1 and 2 above on a
          medium customarily used for software interchange; or,

       c. Accompany it with the information you received as to the offer
          to distribute corresponding source code.  (This alternative is
          allowed only for noncommercial distribution and only if you
          received the program in object code or executable form with
          such an offer, in accord with Subsection b above.)

     The source code for a work means the preferred form of the work for
     making modifications to it.  For an executable work, complete
     source code means all the source code for all modules it contains,
     plus any associated interface definition files, plus the scripts
     used to control compilation and installation of the executable.
     However, as a special exception, the source code distributed need
     not include anything that is normally distributed (in either source
     or binary form) with the major components (compiler, kernel, and so
     on) of the operating system on which the executable runs, unless
     that component itself accompanies the executable.

     If distribution of executable or object code is made by offering
     access to copy from a designated place, then offering equivalent
     access to copy the source code from the same place counts as
     distribution of the source code, even though third parties are not
     compelled to copy the source along with the object code.

  5. You may not copy, modify, sublicense, or distribute the Program
     except as expressly provided under this License.  Any attempt
     otherwise to copy, modify, sublicense or distribute the Program is
     void, and will automatically terminate your rights under this
     License.  However, parties who have received copies, or rights,
     from you under this License will not have their licenses terminated
     so long as such parties remain in full compliance.

  6. You are not required to accept this License, since you have not
     signed it.  However, nothing else grants you permission to modify
     or distribute the Program or its derivative works.  These actions
     are prohibited by law if you do not accept this License.
     Therefore, by modifying or distributing the Program (or any work
     based on the Program), you indicate your acceptance of this License
     to do so, and all its terms and conditions for copying,
     distributing or modifying the Program or works based on it.

  7. Each time you redistribute the Program (or any work based on the
     Program), the recipient automatically receives a license from the
     original licensor to copy, distribute or modify the Program subject
     to these terms and conditions.  You may not impose any further
     restrictions on the recipients' exercise of the rights granted
     herein.  You are not responsible for enforcing compliance by third
     parties to this License.

  8. If, as a consequence of a court judgment or allegation of patent
     infringement or for any other reason (not limited to patent
     issues), conditions are imposed on you (whether by court order,
     agreement or otherwise) that contradict the conditions of this
     License, they do not excuse you from the conditions of this
     License.  If you cannot distribute so as to satisfy simultaneously
     your obligations under this License and any other pertinent
     obligations, then as a consequence you may not distribute the
     Program at all.  For example, if a patent license would not permit
     royalty-free redistribution of the Program by all those who receive
     copies directly or indirectly through you, then the only way you
     could satisfy both it and this License would be to refrain entirely
     from distribution of the Program.

     If any portion of this section is held invalid or unenforceable
     under any particular circumstance, the balance of the section is
     intended to apply and the section as a whole is intended to apply
     in other circumstances.

     It is not the purpose of this section to induce you to infringe any
     patents or other property right claims or to contest validity of
     any such claims; this section has the sole purpose of protecting
     the integrity of the free software distribution system, which is
     implemented by public license practices.  Many people have made
     generous contributions to the wide range of software distributed
     through that system in reliance on consistent application of that
     system; it is up to the author/donor to decide if he or she is
     willing to distribute software through any other system and a
     licensee cannot impose that choice.

     This section is intended to make thoroughly clear what is believed
     to be a consequence of the rest of this License.

  9. If the distribution and/or use of the Program is restricted in
     certain countries either by patents or by copyrighted interfaces,
     the original copyright holder who places the Program under this
     License may add an explicit geographical distribution limitation
     excluding those countries, so that distribution is permitted only
     in or among countries not thus excluded.  In such case, this
     License incorporates the limitation as if written in the body of
     this License.

 10. The Free Software Foundation may publish revised and/or new
     versions of the General Public License from time to time.  Such new
     versions will be similar in spirit to the present version, but may
     differ in detail to address new problems or concerns.

     Each version is given a distinguishing version number.  If the
     Program specifies a version number of this License which applies to
     it and "any later version", you have the option of following the
     terms and conditions either of that version or of any later version
     published by the Free Software Foundation.  If the Program does not
     specify a version number of this License, you may choose any
     version ever published by the Free Software Foundation.

 11. If you wish to incorporate parts of the Program into other free
     programs whose distribution conditions are different, write to the
     author to ask for permission.  For software which is copyrighted by
     the Free Software Foundation, write to the Free Software
     Foundation; we sometimes make exceptions for this.  Our decision
     will be guided by the two goals of preserving the free status of
     all derivatives of our free software and of promoting the sharing
     and reuse of software generally.

                                 NO WARRANTY

 12. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
     WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
     LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
     AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
     OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND
     PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE
     DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
     OR CORRECTION.

 13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
     WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
     MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
     LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
     INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
     INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
     DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
     OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
     OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
     ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

                      END OF TERMS AND CONDITIONS


How to Apply These Terms to Your New Programs
=============================================

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these
terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

     ONE LINE TO GIVE THE PROGRAM'S NAME AND AN IDEA OF WHAT IT DOES.
     Copyright (C) 19YY  NAME OF AUTHOR

     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License
     as published by the Free Software Foundation; either version 2
     of the License, or (at your option) any later version.

     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.

     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

     Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
     type `show w'.  This is free software, and you are welcome
     to redistribute it under certain conditions; type `show c' 
     for details.

The hypothetical commands `show w' and `show c' should show the
appropriate parts of the General Public License.  Of course, the
commands you use may be called something other than `show w' and `show
c'; they could even be mouse-clicks or menu items--whatever suits your
program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

     Yoyodyne, Inc., hereby disclaims all copyright
     interest in the program `Gnomovision'
     (which makes passes at compilers) written 
     by James Hacker.

     SIGNATURE OF TY COON, 1 April 1989
     Ty Coon, President of Vice

This General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications
with the library.  If this is what you want to do, use the GNU Library
General Public License instead of this License.



File: skk.info, Node: 概要, Next: インストール, Prev: Top, Up: Top

概要
****

SKKはNemacs, MuleおよびDemacsの上に高速で効率的な日本語入力環境を提供す
るシステムであり、GNU General Public Licenseに従ったフリー・ソフトウェア
として配布される。

SKKは、Simple Kana to Kanji conversion programにちなんで名付けられた。
SKKは、いわゆるローマ字入力による、文法的知識を用いない高速変換可能な日
本語入力/変換プログラムである。本体部分のプログラムは、Emacs Lispにより
書かれており、拡張性が高い。主な特徴は、下記の通りである。


   * 変換の単位を小さくおさえることにより、文法的知識を用いないで高速に、
     かつ効率的にかな漢字変換を行なう。変換単位は通常1単語であり、変換の
     アルゴリズムが文法的な知識を用いないので、古語、現代語、方言、文語、
     口語等、いずれについても同様に効率的な変換ができる。

   * 変換し選択された候補の単語をどんどん 「個人辞書」 (1) に取り込むド
     ラスティックな方法を取っており、個人で使用頻度の高い候補順に優先的
     に変換されるので、変換の際のヒット率が非常に高い。

   * 独立した辞書登録モードを持たず独立した登録手続きが不要で、品詞の指
     定など文法的知識を必要としない。

   * 登録時に辞書にない単語の変換を行なった場合には再帰的な辞書登録モー
     ドに入るなど、単語登録の手間が大幅に簡略化されている。

   * Emacsにおけるマイナーモードの変形としてインプリメントされており、
     SKKを起動しても日本語の入力が可能となる他は、オリジナルのメジャーモ
     ード にほとんど影響を与えず、Emacsとの親和性が高い。*Note メジャー
     モード: (emacs)Major Modes.  *Note マイナーモード: (emacs)Minor
     Modes.

   * サーバープログラムを使用することにより、Emacs本体のメモリ使用の軽減
     を計れるが、サーバーが仮にダウンしてもSKKの使用を継続することが可能 
     (Emacsのバッファに辞書を取り込むので、メモリは圧迫するが、高速に辞
     書アクセスが可能)。

   * 変換候補としてEmacs Lispで書かれたプログラムを指定することが可能。

   * ローマ字入力を主体とするが、木構造を使ったキー入力指定が可能で、
     T-Code風の入力も可能である。

   * インクリメンタルサーチ用のプログラムを独自に持っており、日本語のサ
     ーチの際に特別の操作を要しない。


SKKは、複数のプログラムより構成される。プログラムの構成と主な作者は下記
の通り。


本体部分及び拡張機能を提供するEmacs Lispプログラム
     大部分のコードは、佐藤雅彦 <masahiko@kuis.kyoto-u.ac.jp>により作
     成され、多くのボランティアにより拡張された。

     Emacs 19 baseのMule用のインクリメンタル・サーチプログラムは、榎並嗣智氏 
     <enami@ptgd.sony.co.jp>により作成された。

     逆引プログラムのKAKASIインターフェイスは、中島幹夫 
     <gy2m-nkjm@asahi-net.or.jp>が作成した。

     また、Emacs Lispで書かれた部分の内部処理のために、Elib (2) の中のい
     くつかのプログラムを利用している。


辞書サーバ用のCプログラム
     亀山幸義 <kameyama@kuis.kyoto-u.ac.jp> により作成された。

辞書
     その第1版が東北大学電気通信研究所佐藤研究室の 安藤大、猪岡美紀、奥
     川淳一、佐々木昭彦、佐藤克志、山岸信寛の各氏により作成され、その後、
     多数のユーザから提供された辞書をもとに拡張された。

ユーティリティプログラム
     増井俊之氏<masui@csl.sony.co.jp>、前田憲男氏および高橋裕信氏
     <takahasi@tiny.or.jp> により作成された。


--------- Footnotes ---------

(1)  個人の変換内容を逐次記録している辞書。詳細は、*Note 個人辞書: 辞書の形式 を参照のこと。

(2) Elib とは、the GNU emacs lisp library の略で、キュー、AVL木構造、
     二重連結リストなどを扱うためのルーチンが入っている。*Note Elib: (elib.info)What      is Elib?.



File: skk.info, Node: インストール, Next: 基本的な使用方法, Prev: 概要, Up: Top

インストール
************

* Menu:

* Makefileの編集とインストール::  
* .emacsの設定::                
* サーバーのインストール::      



File: skk.info, Node: Makefileの編集とインストール, Next: .emacsの設定, Prev: インストール, Up: インストール

`Makefile'の編集とインストール
==============================

Emacsバージョン19にて使用する場合は、以下を実行する。その際、`Makefile' 
必要に応じてを修正する。

     % ./configure
     % make 
     % make install

`make' により、Emacs Lispプログラムがバイトコンパイルされる。Emacsバージョ
ン18にて使用する場合には、lisp ディレクトリに移って`make -f Makefile.18' 
を実行することにより、Emacsバージョン18用のEmacs Lispプログラムがコンパ
イルされる。バージョン9のSKKでは、マクロを多用している関係から、ファイル
間に依存関係が存在するので、必ず添付の `Makefile'、`Makefile.18' を使用
して `make' すること。

`make install' により、Emacs Lispプログラム、辞書、infoドキュメント、チュ
ートリアルデーターがそれぞれ指定のディレクトリにインストールされる。

なお、このSKKディストリビューションでは、予めinfoファイルを作ってあるの
で、改めて作る必要はない。なお、ご自身でフォーマットし直したい場合は、
Emacsに読み込んで `M-x texinfo-format-buffer' することで作成できる。
Texinfoソース(このドキュメントの自身のソース)は、御覧の通り日本語で標記
されており、texinfoパッケージが日本語化されていないことから、現状では
infoファイルを作る方法は他にない。



File: skk.info, Node: .emacsの設定, Next: サーバーのインストール, Prev: Makefileの編集とインストール, Up: インストール

`.emacs' の設定
===============

`.emacs' (1) に以下のフォームを挿入する。

     (global-set-key "\C-x\C-j" 'skk-mode)
     (global-set-key "\C-xj" 'skk-auto-fill-mode)
     (global-set-key "\C-xt" 'skk-tutorial)
     (autoload 'skk-mode "skk" nil t)
     (autoload 'skk-auto-fill-mode "skk" nil t)
     (autoload 'skk-tutorial "skk-tut" nil t)
     (autoload 'skk-isearch-mode-setup "skk-isearch" nil t)
     (autoload 'skk-isearch-mode-cleanup "skk-isearch" nil t)
     (add-hook 'isearch-mode-hook
               (function (lambda ()
                           (and (boundp 'skk-mode) skk-mode
                                (skk-isearch-mode-setup) ))))
     (add-hook 'isearch-mode-end-hook
               (function (lambda ()
                           (and (boundp 'skk-mode) skk-mode
                                (skk-isearch-mode-cleanup)
                                (skk-set-cursor-color-properly) ))))

上記の設定では、SKKが起動されているときのみ、付属のインクリメンタルサー
チを使用する。常に付属のインクリメンタルサーチを使用したかったら上記の 
`isearch-mode-hook'、`isearch-mode-end-hook' の設定を下記の設定に変更す
る。

     (add-hook 'isearch-mode-hook 'skk-isearch-mode-setup)
     (add-hook 'isearch-mode-end-hook 'skk-isearch-mode-cleanup)

また、Emacs バージョン18では、上記の `add-hook' を使ったフォームは、いず
れも挿入せず、代りに下記のフォームを挿入する。

     (global-set-key "\C-s" 'skk-isearch-foreward)
     (global-set-key "\C-r" 'skk-isearch-backward)

サーバーを使わない場合は、更に辞書ファイルを指定する必要がある。

     (setq skk-large-jisyo "/your/path/to/SKK-JISYO.L")

`skk-large-jisyo' はEmacsのバッファに取り込んで使用するので、これにより
メモリが圧迫されすぎる場合は、上記の `SKK-JISYO.L' を`SKK-JISYO.S' や 
`SKK-JISYO.M' に変更する。

Emacsでは本来 `C-x j' と `C-x J' はコマンド `register-to-point' に、また 
`C-j' は、各メジャーモードにより `newline-and-indent'、
`eval-print-last-sexp'、`picture-duplicate-line' などの各コマンドに割り
付けられている。SKKでは `C-x j' を `skk-auto-fill-mode' に、`C-j' を
`skk-kakutei' に使用するのが標準的な設定となっているので、これらのキーに
元々バインドされていたEmacsのオリジナルコマンドを `C-x J' や `C-J' など
の大文字キーに退避するか、逆にそれらのオリジナルコマンドを元の設定のまま
残して、SKKの標準設定を変更するかどうかをユーザー側にて検討する必要があ
る。Emacsのオリジナルコマンドの退避などを、将来のバージョンのSKKにおいて
自動化を検討する予定である。*Note 拡張アイディア::.

--------- Footnotes ---------

(1)  OSがMSDOSの場合は `_emacs' である。



File: skk.info, Node: サーバーのインストール, Prev: .emacsの設定, Up: インストール

サーバーのインストール
======================

サーバーを使用する場合は、本節に従いインストールを行なう必要がある。

* Menu:

* サーバーの概略::              
* 共通の設定::                  
* スーパーユーザの権限を持つ人の場合::  
* スーパーユーザの権限を持たない人の場合::  



File: skk.info, Node: サーバーの概略, Next: 共通の設定, Prev: サーバーのインストール, Up: サーバーのインストール

サーバーの概略
--------------

skkservは、SKKのための辞書サーバである。skkserv(サーバ)は、SKK/Emacs(ク
ライアント)とは独立に動作する。一つのサーバは、複数のクライアントの要求
を処理することができる。

サーバは、起動されると最初にSKK形式の辞書を読みこむ。次に、無限ループに
入り、クライアントからの要求を待つ。サーバは、接続を要求したクライアント
ごとに通信路を作り、以後、そのクライアントから文字列変換の要求が起きる毎
に辞書を検索して変換文字列を返す。クライアントは、文字列変換要求以外に、
サーバのバージョン番号要求や接続終了などのメッセージをサーバに送る。

サーバとクライアントの間の通信には、BSD系UNIXのソケットを利用する。
System V系UNIXでもBSD系のネットワーク機能を取りこんでいるものは動作する
ことがある。詳しくは `skkserv/Makefile' の記述を参照のこと。`skkserv'の
テストは、SunOS 4.0.3, 4.1.1、NEWS OS 4.1.1、Ultrix V4.1、 System V
release 4.0 の上で行った。また、ユーザのレポートによると、インストール時
に適切な設定をすることにより、HP-UX、MassComp、386BSD、FreeBSD、Linuxな
どの上でも動作することがわかっている。

サーバとクライアントは、ネットワークで接続された異なる計算機上で動かすこ
とができる。



File: skk.info, Node: 共通の設定, Next: スーパーユーザの権限を持つ人の場合, Prev: サーバーの概略, Up: サーバーのインストール

共通の設定
----------

サーバーを使用する場合には、`.emacs' や `.skk' を使って 
`skk-server-host'、`skk-server-prog' 及び`skk-server-jisyo' の設定を行な
わなければならない。
 

`skk-server-host'
     辞書サーバーを走らせるホスト名。

`skk-server-prog'
     辞書サーバープログラム(フルパスで指定する)。

`skk-server-jisyo'
     サーバーに渡す辞書(フルパスで指定する)。

  
`hogehoge' ホストの、
`/usr/local/libexec/emacs' に辞書サーバープログラムを、
`/usr/local/share/emacs/site-etc' に置くのであれば、

     (setq skk-server-host "hogehoge")
     (setq skk-server-prog "/usr/local/libexec/emacs/skkserv")
     (setq skk-server-jisyo "/usr/local/share/emacs/site-etc/SKK-JISYO.L")

のように指定する。また、上記の設定は、環境変数を利用して下記のように設定
することで代えることができる。


Bシェルの場合
          export SKKSERVER=hogehoge
          export SKKSERV=/usr/local/libexec/emacs/skkserv
          export SKK_JISYO=/usr/local/share/emacs/site-etc/SKK-JISYO.L

Cシェルの場合
          setenv SKKSERVER hogehoge
          setenv SKKSERV /usr/local/libexec/emacs/skkserv
          setenv SKK_JISYO /usr/local/share/emacs/site-etc/SKK-JISYO.L


なお、既に `skkserv' が立ち上がっている場合は、上記の`skk-server-host'、
`skk-server-prog'、`skk-server-jisyo'あるいはそれらの環境変数はいずれも
参照されないが、`skkserv' が立ち上がっていないときは、これらの変数を参照
して `skkserv' を立ち上げようとするので、安全のためにこれらの変数を設定
しておく方が良い。
  


File: skk.info, Node: スーパーユーザの権限を持つ人の場合, Next: スーパーユーザの権限を持たない人の場合, Prev: 共通の設定, Up: サーバーのインストール

スーパーユーザの権限を持つ人の場合
----------------------------------

まず、`skkserv/Makefile' を編集する。自分の計算機の状況に応じて、以下の
変数の値を変更する。


SERVERDIR
     `skkserv'がインストールされるディレクトリであり、通常 
     $EMACS/ETC にする。Emacs 19.29以上のバージョンでは、`wakeup' 
     など、かつて $EMACS/ETC に置かれていたプログラムは、
     `/usr/local/libexec/emacs/19.33/i586-pc-linux-gnu/' のような
     libexecディレクトリに配置されるようになったので、SERVERDIR もこち
     らを指定するのが良いであろう。

JISYODIR
     辞書がインストールされるディレクトリであり、通常 $EMACS/ETCにする。

JISYO
     SKK辞書の名前であり、通常 `SKK-JISYO.L' とする。
     
次に `skkserv' をコンパイルする。

     % make

最後にスーパーユーザになり、`skkserv' をインストールする。

     % su
     Password: XXXXXXXX
     # make install

次に`/etc/services' に以下の行を追加する。

     skkserv         1178/tcp

また、`/etc/rc.local' に以下の行を追加する。

     if [ -x /your/path/to/skkserv ]; then
             /your/path/to/skkserv /your/path/to/SKK-JISYO.L
     fi

NIS(旧名YP)を使っている場合は、更にNISのマスタサーバとなっている計算機で
スーパーユーザになり、`/etc/services' に

     skkserv               1178/tcp        skk-jisyo-server

という行を加えた後、

     # cd /var/yp (または cd /etc/yp)
     # make services

とする。



File: skk.info, Node: スーパーユーザの権限を持たない人の場合, Prev: スーパーユーザの権限を持つ人の場合, Up: サーバーのインストール

スーパーユーザの権限を持たない人の場合
--------------------------------------

まず、`skkserv/Makefile' を編集する。


SERVERDIR
     `skkserv' の置き場所である。任意のディレクトリを設定する。


`Makefile' の後の項目については、*Note スーパーユーザの権限を持つ人の場
合:: を参照のこと。
     
次に、`skkserv' を作り、インストールする。

     % make
     % make install

`~/.emacs' や `~/.skk' に

     (setq skk-server-portnum 1178)

を追加する (1) 。
     
SKKを使う前に `skkserv' を動かす計算機の上で、自分で

     % skkserv /your/path/to/SKK-JISYO.L

としてサーバーを起動する。これは、サーバーがSKK呼出し時に自動的に起動さ
れるようになっているのだが、必ずしも成功しないためである。`SKK-JISYO.L' 
をフルパスで指定する代りに環境変数 SKK_JISYO を利用することもできる。
*Note 共通の設定::.

--------- Footnotes ---------

(1)  この変数は、バージョン8までは、`skk-portnum' という名前だったので注意すること。



File: skk.info, Node: 基本的な使用方法, Next: 便利な応用機能とユーザーオプション, Prev: インストール, Up: Top

基本的な使用方法
****************

基本的な使用方法をまとめた本章を読むことで、とりあえずSKKを使ってみるに
は困らないはずである。SKKの変換方法に慣れるには、付属のチュートリアルプ
ログラムが最適なので、お試しいただきたい。

なお、次章の「便利な応用機能とユーザーオプション」は、興味のある個所のみ
をピックアップしてお読みになれば良いと思う。

* Menu:

* 起動と終了::                  
* モード::                      入力モードと変換モード。
* インクリメンタル・サーチ::    



File: skk.info, Node: 起動と終了, Next: モード, Prev: 基本的な使用方法, Up: 基本的な使用方法

起動と終了
==========

SKKを起動するには `C-x C-j'、もしくは `C-x j' とタイプする。起動すると、
モードラインの左端が`--かな'となるので、これで確認できる。また、カーソル
の色がreverseVideoがoffのときはcoral4に、onのときはpinkになる (1) 。

起動時にタイプした `C-x C-j'、もしくは `C-x j' を再度タイプすることで、
SKKを終了しオリジナルのモードに戻る。カーソル色はreverseVideoがoffのとき
はblackに、onのときはwhileに戻る。但し、変換を行なわないモードである「ア
スキーモード」では `C-j' のキーバインドがSKK用に変更されている以外は、
SKKを起動する前のオリジナルのモードと変わりがないので、SKKを終了する必要
はほとんどない。*Note アスキーモード: 入力モード.

`C-x j' とタイプすれば、オートフィルモード (2) をオンにし、かつSKKを起動
する。既にオートフィルモードがオンになっているバッファで `C-x j' をタイ
プすると、SKKは起動されるが、オートフィルモードはオフになるので注意する
こと。バッファの状態にかかわらず強制的にオートフィルモード付でSKKモード
を起動したい場合は、`M-1 C-x j' や `C-u C-x j' などとタイプし、このコマ
ンドに正の引数を渡す (3) 。オートフィルモードをオフにし、かつSKKモードも
終了したい場合には`M-- C-x j' や `C-u -1 C-x j' などとタイプし、このコマ
ンドに負の引数を渡す。

`C-x C-c' でEmacsを終了しようとすると `skk-jisyo' に個人辞書の内容を自動
的に保存する。*Note 個人辞書: 辞書の形式.  `skk-backup-jisyo' に保存を行
なう前の辞書が退避される。個人辞書を保存せずEmacsを終了させたい場合には、

     M-x skk-kill-emacs-without-saving-jisyo

とタイプする。個人辞書の保存動作について更に詳しくは、*Note 個人辞書の保
存動作:: を参照のこと。

--------- Footnotes ---------

(1)  カラーディスプレイを使用し、カラー表示をサポートしているWindow System下で対応するEmacsを使用している場合。Emacs 18にはカーソル色の変更機能はない。

(2) *Note Auto Fill: (emacs)Auto Fill.

(3) 「引数」については、*Note Arguments: (emacs)Numeric Arguments を参照のこと。



File: skk.info, Node: モード, Next: インクリメンタル・サーチ, Prev: 起動と終了, Up: 基本的な使用方法

モード
======

SKKが起動されている状態を「SKKモード」という。SKKモードは、いわゆるマイ
ナーモードの変形 (1) としてインプリメントされており、他のメジャーモード
やマイナーモードの動作に可能な限り影響を与えないように設計されている (2) 
。SKKモードは、更に文字種類による4種類の「入力モード」と、変換状態によ

り3つの「変換モード」を持つ。本章では、入力モードと変換モードについて説
明する。*Note マイナーモード: (emacs)Minor Modes.

* Menu:

* 入力モード::                  文字種別毎のモード
* 変換モード::                  変換種別毎のモード

--------- Footnotes ---------

(1)  何故「変形」なのかと言うと、SKK用のキーマッピングにEmacs19で装備された `minor-mode-map-alist' を利用していないため。

(2) `self-insert-command' をそのメジャーモード独自のコマンドに割り
付けるようなモード、もしくは、該当のキーマップが `suppress-keymap' 
されており、多くのキーが `undefined' に割り付けられるようなメジャー
モードでは、SKKモードの起動により受ける影響は大きくならざるを得ない。
「可能な限り」と断わりを入れたのはこのためである。



File: skk.info, Node: 入力モード, Next: 変換モード, Prev: モード, Up: モード

入力モード
----------

入力モードは、文字種別により下記の4種類に分類される。


「かなモード」
     英小文字で入力されたローマ字をひらがなに変換するモード。モードラインの最
     左部分は、`--かな'となる。カーソルの色がreverseVideoがoffのとき
     はcoral4に、onのときはpinkになる。

「カナモード」
     英小文字で入力されたローマ字をカタカナに変換するモード。モードラインの最
     左部分は、`--カナ'となる。カーソルの色がreverseVideoがoffのとき
     はforestgreenに、onのときはgreenになる。

「全英モード」
     英小文字、英大文字を全角アルファベットに変換するモード。モードラインの最
     左部分は、`--全英'となる。カーソルの色がgoldになる(reverseVideo
     のoff/onともに同一色)。

「アスキーモード」
     変換を行なわないモード。入力されたキーは `C-j' を除いて通常のEmacsの
     コマンドとして解釈される。モードラインの最左部分は、`--SKK'とな
     る。カーソルの色がreverseVideoがoffのときはivory4に、onのときはgrayにな
     る。


入力モードに伴なうカーソル色の変更方法については、*Note 入力モードを示す
カーソル色に関する設定:: を参照のこと。

各入力モードの変更を行なうキーは下記の通り。


`q'
     「かなモード」、「カナモード」間をトグルする。

`l'
     「かなモード」または「カナモード」から「アスキーモード」へ。

`L'
     「かなモード」または「カナモード」から「全英モード」へ。

`C-j'
     「アスキーモード」または「全英モード」から「かなモード」へ。


実際にはカナモードや全英モードで長時間入力を続けることはほとんどないので、
かなモードのままでカナ文字や全英文字を入力する便法が用意されている。
*Note 入力モードの一時変更::.



File: skk.info, Node: 変換モード, Prev: 入力モード, Up: モード

変換モード
----------

変換モードは、次の3種類のいずれかである。


「確定入力モード(■モード)」
     漢字変換は行われないが、入力モードに応じて、ローマ字からひらがな、
     ローマ字からカタカナ、あるいはアスキー文字から全角アルファベットへ
     の文字変換を行なうモード。

「▽モード」
     漢字変換の対象となる文字列を入力するモード。

「▼モード」
     ▽モードで漢字変換の対象となる文字列を確定した後、その文字列の変換
     を行うモード。

また、▽モードの変種として "SKK abbrev mode" があり、▼モードのサブモー
ドとして、「辞書登録モード」がある。

* Menu:

* ■モード::                    変換を行なわない確定入力のモード。
* ▽モード::                    変換のための見出し語の入力を行なうモード。
* ▼モード::                    実際の変換を行なうモード。
* 辞書登録モード::              個人辞書への単語登録を行なうモード。



File: skk.info, Node: ■モード, Next: ▽モード, Prev: 変換モード, Up: 変換モード

■モード
........

確定入力モードを「■モード」と呼ぶ。■モードでは、漢字変換は行われないが、
入力モードに応じて、ローマ字からひらがな、ローマ字からカタカナ、あるいは
アスキー文字から全角アルファベットへの文字変換を行なう。変換を行なうカレ
ントバッファにこのモード特有のマークは表示されない。

かなモード、カナモードで、かつ■モードである場合、入力方法はいわゆるロー
マ字入力である。訓令式、ヘボン式のどちらによっても入力することができる。
主な注意点のみ以下に述べる。


   * `ん'は `n n' または `n '' で入力する。直後に `n'、`y' 以外の子音が
     続くときは `n' だけで入力できる。

   * 促音は、`c h o t t o' => `ちょっと'、`m o p p a r a'
     => `もっぱら'のように次の子音を重ねて入力する。

   * 促音や拗音(ひらがなの小文字)を単独で入力するときは、`x a'
     => `ぁ'、`x y a' => `ゃ'などのように 
     `x' を用いる。

   * 長音には、`-' を用いる。`-' => `ー'。



File: skk.info, Node: ▽モード, Next: ▼モード, Prev: ■モード, Up: 変換モード

▽モード
........

「▽モード」では、変換の対象となる文字列を入力する。かなモード、もしくは
カナモード (1) で、かつ、■モードであるときに 、ローマ字入力を大文字で開
始することで、▽モードに入る。例えば、

     K a n j i

     ------ Buffer: foo ------
     ▽かんじ
     ------ Buffer: foo ------

のようにタイプすることで、▽モードに入り、続けて漢字変換の対象となる文字
列を入力してゆくことができる。`▽'マークは、▽モードであるという表示であ
り、また、変換開始点を示す表示でもある。

`K' の文字を大文字で入力し忘れた場合は、変換の対象としたい文字列の先頭ま
でポイント (2) を戻し `Q' をタイプすることで▽モードに入ることができる。
例えば、下記のように行なう(-!-の地点にカーソルがある)。


     k a n j i

     ------ Buffer: foo ------
     かんじ-!-
     ------ Buffer: foo ------

     C-u 3 C-b, Q

     ------ Buffer: foo ------
     ▽-!-かんじ
     ------ Buffer: foo ------

     C-e

     ------ Buffer: foo ------
     ▽かんじ-!-
     ------ Buffer: foo ------

誤って▽モードに入ってしまったときは `C-j' とタイプし、■モードに戻るか 
`C-g' とタイプし▽モードで変換と対象となっている文字列を消去するかの 2 
通りの処理の方法がある。具体例を下記に示す。

     K a n j i

     ------ Buffer: foo ------
     ▽かんじ
     ------ Buffer: foo ------

     C-j

     ------ Buffer: foo ------
     かんじ
     ------ Buffer: foo ------

あるいは、

     K a n j i

     ------ Buffer: foo ------
     ▽かんじ
     ------ Buffer: foo ------

     C-g

     ------ Buffer: foo ------

     ------ Buffer: foo ------

`7がつ24にち'のように大文字から始めることができない文字列について、▽モ
ードにしたい場合は `Q' をタイプし、▽モードにしてから`7がつ24にち'の文字
列を入力する。なお、▽モードでは、文字列の間に空白を含めることはできない 
(3) 。

--------- Footnotes ---------

(1)  *Note かなモード、カナモード: 入力モード.

(2) *Note ポイント: (emacs)Point.

(3) これは、辞書の見出し語に空白を含めることができない制限からきている。



