This file documents Lookup, a search interface.

Copyright © 1997,1998,1999 NISHIDA Keisuke

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 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.

Lookup Manual
*************

Lookup は Emacs エディタで利用できる辞書検索インターフェースです。市販の CD-ROM 辞書やネットワークの辞書サーバを始め、様々な情報源から簡単な操作と設定で辞書検索が行なえます。

本書は Lookup 1.0 について説明します。

はじめに
****

近年、コンピュータで電子辞書を利用することもずいぶん一般的となり、機能的に優れた多数の CD-ROM 辞書が販売されるようになりました。しかし、日頃からエディタでの作業に慣れ親しんでいる者にとってはまず、いかに充実した機能を使い込なすかよりも、単純な用語検索をどれだけ手軽に行なえるかという要求が少なからずあるのではないかと思います。

自分も Emacs の一ファンとして、日常的な検索作業をより快適に行ないたいという飽く無き欲求を持っており、そうして生まれたのがこの Lookup です。さほど高度なことはやれずとも、使っていて手に(指に?)しっくりくるような快適さ、便利さを備えた日用道具としてのソフトウェアを作りたい。そうした思いが基本としてあります。

何を快適と感じるかは人それぞれでしょう。今後ソフトウェアをよりいっそう使いやすいものへと育てていくため、プログラムを使ってみて感じた卒直なご意見を頂けますと幸いです。ひいては、このプログラムを利用することで、より多くの皆さんが快適に辞書検索を行なえるようになりましたなら嬉しく思います。

Lookup の特徴
==========

Lookup の基本的な検索スタイルは、日頃よく用いる辞書をまとめて用意しておき、そこから一気に目的の語を見付け出すことです。少しでも検索のための労力を減らせるよう、多くの工夫を行なっています。

  * 複数の辞書から一度に検索を行ないます。最初に利用したい辞書を全て登録しておくことで、検索結果がまとめて表示されます。検索は普通、十分高速に行なわれるので、いちいち目的の辞書を切り替えるよりも効率的です。

  * 様々な種類の辞書を扱えます。市販の CD-ROM 辞書に限らず、ネットワーク上の辞書サーバや、フリーに配布されている用語集など、多くの情報源からその違いを気にすることなく検索が行なえます。(see Setup Agent)

  * 目的ごとに、辞書のまとまりを分けて検索が行なえます。例えば、英語学習用に英和・和英辞典のグループ、ニュース記事を読むために現代用語集・コンピュータ用語集のグループ、といった具合にまとめておき、それぞれに個別の検索コマンドを割り当てることが可能です。(see Setup Command)

  * CD-ROM 辞書などに含まれる外字もそのまま表示出来ます。外字置き換えのために追加の設定を行なうことなく、辞書をそのまま利用出来ます。逆に置き換え文字列を指定することで、処理を高速化するようなことも可能です。 (see Setup Gaiji)

  * スペルチェックのための仕組みを備えています。英単語の複数形や、綴りに誤りがある場合にでも、適切な単語を推測して、自動的に再検索を行なうように設定することが出来ます。(see Setup Correction)

  * 辞書をより快適に使えるよう行なったカスタマイズを、特定の書式でファイルにまとめることで、設定用パッケージとして他の人とも共有出来るようになります。もし既に手持ちの辞書用のパッケージがあれば、それを用いることで辞書をいっそう使いやすくすることが出来るでしょう。(see Setup Package)

動作環境
====

Lookup が公式にサポートを考えている Emacs は、次の通りです。

  * GNU Emacs 19.28 以降

  * XEmacs 20.3 以降

  * Mule 2.3(based 19.28 or 19.34)

  * Meadow 1.0 以降

このうち、GNU Emacs をメインターゲットとして開発しています。そのため、最新版の GNU Emacs で利用するのが最も確実に動作します。

XEmacs 20 以降でも一通りの機能が利用できるはずです。アイコン等の追加機能はありませんが、特別な設定なしに外字が表示出来るといった利点はあります。ただし、表示の関係でまだ少し問題が残されています。

Mule 2.3 でも一応の動作は確認しています。ただし、一部の機能が適切に動作しないといったいくつかの制限はあります。協力者次第で、これらはいずれ解決されるかもしれません。

Meadow(Emacs 20 for Win32)や Mule for Win32 といった、Microsoft Windows で利用できる Emacs でも動作は確認されています。ただし、外部コマンドの呼び出しなどの関係で、いくらか注意が必要です。

もし上記の Emacsen で動作がうまくいかなかったり、あるいはこれら以外の Emacs での動作を希望される方は、Lookup のメーリングリスト、もしくは管理人までメールをお願いします。(see How To Get)

著作権について
=======

Lookup はフリー・ソフトウェアです。あなたは、Free Software Foundation が公表した GNU General Public License (GNU 一般公有使用許諾)のバージョン 2 あるいはそれ以降の各バージョンの中からいずれかを選択し、そのバージョンが定める条項に従って Lookup を再配布または変更することができます。

Lookup は有用とは思いますが、頒布にあたっては、市場性及び特定目的適合性についての暗黙の保証を含めて、いかなる保証も行ないません。詳細については GNU General Public License をお読みください。

あなたは、Lookup と一緒に GNU General Public License の写しを受け取っているはずです。そうでない場合は、Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA へ手紙を書いてください。

Lookup の著作権は Lookup 開発チームにあります。これは有志による開発陣の集まりで、Lookup の配布条件等の決定はその間の合意により行なわれます。問い合わせ等は lookup-ja@ring.gr.jp までお願いします。

大まかな使い方
*******

さあ、それでは Lookup を使ってみましょう。ヤヤコシイ説明は後回しにして、ともかく動かすことから始めていきます。

辞書の準備
=====

まず、何はなくとも辞書が必要です。とはいえたぶん、このプログラムを使おうと思われた時点で既に、利用したい辞書は決まっているでしょうね。辞書をもう用意しているという方は、本節は読み飛ばして次へ進んで下さい。

もしこれから辞書を探そうと思っている、あるいはどの辞書を選べばいいか迷っているという方は、Lookup のホームページや配布物に含まれる FAQ にいくつかアドバイスがありますので、参考にして下さい。

あるいは、「辞書はいらないから、とにかく Lookup を使ってみたいんだっ!」という奇特な方も中にはおられるかもしれません。そのような方のために一つ、 Lookup を手っ取り早く試すための材料として、Emacs に附属の Zippy ファイルを紹介しておきましょう。

Zippy ファイルとは、アメリカのコミック "Zippy the Pinhead" の中からいくつかのセリフを抜き出しデータベース化したもので、Emacs の etc/yow.lines というファイルに収められています。そして Lookup は標準で、このファイルからキーワードを含んだセリフを検索出来るようになっているのです!

Zippy ファイルを用いるには、何も考えずに次節で最後の指示に従って下さい。そして記述のままに、こころゆくまで Lookup の機能をお試し下さい。一通りの動作を確認した後、あなたはふっ、と軽く笑みを浮かべ、もっとしっかり考えた上で行動すべきだと自分を見つめ直すことでしょう。ブラボー!

設定すべきこと
=======

さて、辞書の用意が出来たら Lookup の設定です。しかし待った。Lookup が対応している辞書には数多くの種類があります。まず始めに、辞書との実際の連絡係となる 検索エージェント を選ばねばなりません。

このバージョンの Lookup には、以下の検索エージェントが含まれています。これらは利用する辞書の種類や利用形態の違いによって、それぞれ異なる性格を持っています。それぞれの説明を参照して、自分の目的に合ったものをピックアップして下さい。

用語検索に向いたエージェント
--------------

ndic
     フリー辞書からの直接検索 (see ndic)

ndeb
     EPWING などに準拠した CD-ROM 書籍の個人利用 (see ndeb)

ndtp
     NDTP サーバを用いた、ネットワーク辞書の利用 (see ndtp)

ndict
     DICT サーバを用いた、ネットワーク辞書の利用 (see ndict)

全文検索に使えるエージェント
--------------

ndnmz
     Namazu システムを用いた全文検索 (see ndnmz)

ndcookie
     cookie ファイルから検索 (see ndcookie)

補助的なエージェント
----------

ndkks
     日本語の読みを調べる (see ndkks)

ndspell
     スペルチェックやスペル検索 (see ndspell)

利用するエージェントが決まったら、説明に従って準備を整えて下さい。辞書の設定やインストール、外部プログラムが必要になることもあります。Emacs の設定についても例も挙げられているはずですから、自分の場合の設定内容を把握して下さい。

以上が終われば、~/.emacs ファイルに設定を書き込みます。基本的には変数 lookup-search-agents をセットするだけです。利用したい検索エージェントの数だけ、設定を並べることが出来ます。

例えば、NDTP サーバがホスト dserver で動いており、CD-ROM 辞書を /cdrom にマウントしているのであれば、設定は次のようになります。

     (setq lookup-search-agents '((ndtp "dserver") (ndeb "/cdrom")))

あるいは、Zippy ファイルに心魅かれるそこのあなたは、次の一行で OK です!

     (setq lookup-search-agents '((ndcookie "yow.lines")))

簡単な設定例
======

さあ、辞書の設定は終わりました。しかし実際には、管理者の方が特別に設定を行なってでもいない限り、他にもいくつかの設定が必要となります。実用上、 ~/.emacs には次のように書いておくとよいでしょう。

     ;;;
     ;;; Lookup Setup Example
     ;;;

     ;; オートロードの設定
     (autoload 'lookup "lookup" nil t)
     (autoload 'lookup-region "lookup" nil t)
     (autoload 'lookup-pattern "lookup" nil t)

     ;; キーバインドの設定
     (define-key ctl-x-map "l" 'lookup)              ; C-x l - lookup
     (define-key ctl-x-map "y" 'lookup-region)       ; C-x y - lookup-region
     (define-key ctl-x-map "\C-y" 'lookup-pattern)   ; C-x C-y - lookup-pattern

     ;; 検索エージェントの設定
     (setq lookup-search-agents '((ndtp "dserver") (ndeb "/cdrom")))

最初の段落では、Lookup の各コマンドを実行したとき、自動的にプログラムを読み込むように設定しています。もし Emacs 起動時に初期化を済ませてしまうことがお好みなら、代わりに (require 'lookup) などと書いておけばよいでしょう。

二番目の段落では、コマンドを実行するためのキーバインドを定義しています。これは必須ではありませんが、上記のコマンドはよく用いるので、適当なキーに割り当てておくと便利です。各自で好みのキーにバインドして下さい。

最後の段落では、利用する検索エージェントを設定しています。これは前節で説明した通りです。各自のものに合わせて設定して下さい。

以上が終われば、式を評価するなり、Emacs を再起動するなりして、設定を有効にして下さい。さあ、いよいよ Lookup の実行ですよ!

起動するには
======

お待たせしました。それでは Lookup を動かしていきましょう。まず手始めに M-x lookup として、プログラムが起動することを確認して下さい。

     M-x lookup RET =>

     ======== Lookup Windows ========================================
     ----------------------------------------------------------------
     Type `m' to select, `u' to unselect, `?' for help.

     % Identifier          Title                Method
     - ----------          -----                ------
     * ndtp+dserver:KOKUGO 国語辞典             =<>
     * ndeb+/cdrom:EIWA    英和辞典             =<>
     * ndeb+/cdrom:WAEI    和英辞典             =<>

     ----------------------------------------------------------------
     -J:%*  Lookup: *Dictionary List*      (Select Abbrev)--L5--C0--A
     ----------------------------------------------------------------
     ================================================================

上のような画面が表示されましたか? もしエラーが起こったり、あるいは一覧が表示されないようなら、辞書やプログラムの設定に失敗しているかもしれません。問題点を確認して、もう一度やり直してみて下さい。よくあるミスなら FAQ に情報があるかもしれませんし、わからないことがあればメールで尋ねてもらっても一向に構いません。

このとき表示されるバッファを 辞書一覧バッファ と呼びます。上の例では、「国語辞典」「英和辞典」「和英辞典」の三つの辞書が使えるようになっています。以下、これらの辞書を例に説明していきます。

行頭に *(アスタリスク)のマークが付いているのは、その辞書を検索に用いるものとして、辞書が選択されているということを表わしています。上の場合、三つ全ての辞書から一度に検索が行なわれるという意味になります。通常、最初は利用出来る全ての辞書が選択状態になっています。

Identifier とあるコラムには、辞書を特定するための名称が表示されています。これは利用している検索エージェント(AGENT)と、辞書の所在 (LOCATION)、及び辞書名(NAME)とを組み合わせて、 AGENT+LOCATION:NAME という形で表わされます。本書ではこれを辞書ID と呼び、NAME で表わされる 辞書名 とは区別します。また同様に、AGENT+LOCATION の部分は エージェントID と呼びます。

Title とあるコラムには、辞書のタイトルが表示されます。これは検索結果の出力などに、普段用いられるものです。オプション設定により自由に変更することも可能ですから、後で見やすいものに変えておきましょう。

最後の Methods とあるコラムには、辞書が対応している検索方式が示されています。これは各種検索方式がそれぞれ一つの記号で表わされており、上の場合はどの辞書も「前方一致検索」「後方一致検索」「完全一致検索」に対応しているという意味になります。詳しくは後ほど説明します。

このバッファでは辞書の一覧を確認する以外にも、辞書の選択状態を切り替えるなどいくつかの操作が可能となっています。試しに ? を押してみて下さい。別のバッファにコマンドの一覧が表示されましたね? Lookup の各バッファでは、? キーを押すことで簡単なコマンド一覧が出るようになっているので、ちょっと調べたいときにご利用下さい。

どこでも使えるキー操作をもう一つ。q を押せば、そのバッファを抜けて元の作業に戻ることが出来ます。さあ、それでは辞書の確認はこの辺にして、次のステップに進みましょう。

検索してみよう
=======

いよいよ検索を行ないます。最も代表的な検索コマンドとして、M-x lookup-region と M-x lookup-pattern の二つがあります。それぞれリージョンの内容、及びミニバッファからの入力を検索語に、検索を開始します。

     M-x lookup-pattern RET test RET =>

     ======== Lookup Windows ========================================
     ----------------------------------------------------------------
     国語辞典            -!-テスト
     英和辞典            test

     ----------------------------------------------------------------
     -J:%*  Lookup: *Entry* {*:test} [2]      (Entry Abbrev)--L1--C20
     ----------------------------------------------------------------
     テスト
     [名] 1. 試験....

     ----------------------------------------------------------------
     -J:%*  Lookup: *Content* {テスト}      (Content Abbrev)--L1--C0-
     ----------------------------------------------------------------
     ================================================================

二つのバッファが表示されました。上側のバッファは Entry バッファ と言い、検索の結果見付かったエントリを一覧します。ここでは二つのエントリが表示されています。-!- とあるのは、そこにポイントがあるという印です。つまり、現在一つ目の「テスト」というエントリが選択されています。

下側のバッファは Content バッファ と言い、選択されているエントリの本文が表示されます。Entry バッファで SPC を押していけば、内容が次々と表示されます。

上の例では test という検索語で検索を行ないましたが、ここで入力を次のようにすることで、検索方式を様々に切り換えることが出来ます。

word
     単語検索。標準の検索方法。

word*
     前方一致検索。指定した文字列で始まる語を見付ける。

*word
     後方一致検索。指定した文字列で終わる語を見付ける。

*word*
     部分一致検索。指定した文字列を含んだ語を見付ける。

'word'
     完全一致検索。指定した文字列と一致する語を見付ける。

@word
     キーワード検索。指定した文字列をキーワードに持つエントリを見付ける。

ひとまずこれだけ覚えておけば十分でしょう。検索方式は他にもまだいくつかありますが、詳しくは後ほど説明します。ここではもう少し、検索結果の見方について話を進めていきます。

結果を見ていく
=======

以下、Entry バッファでよく用いられるコマンドについて説明します。キー操作を忘れてしまったときには、? を押せば確認出来ます。

  * 本文のスクロール

     SPC
          一画面分、先に進む。

     DEL
          一画面分、前に戻る。

     <
          バッファの先頭へ戻る。

     >
          バッファの最後へ進む。

  * エントリの選択

     n
          次のエントリに移動。

     p
          前のエントリに移動。

     M-n
          検索履歴を次に進む。

     M-p
          検索履歴を前に戻る。

  * 本文に対する操作

     s
          Content バッファで isearch-forward を実行。

     w
          Content バッファの内容をキルリングにセーブ。

     L
          リファレンスを一覧。

まだまだあります。見付かったエントリが多くて一覧が見辛いときには、 v を押すことで Overview モード に入ります。 Overview モードでは Content バッファがクローズされ、Entry バッファを広く見ることが出来ます。Overview モードを抜けるには、もう一度 v とするか、あるいは SPC を押して下さい。

逆にエントリの本文を広く見たいときには、o が使えます。これは Lookup のウィンドウをフレーム一杯に広げ、一時的に表示領域を広く取ります。 q でバッファを閉じれば、次からまた元に戻ります。

一度バッファを閉じた後でも、もう一度 M-x lookup とすることで、最後に Lookup を抜けたときの状態が取り戻されます。q と M-x lookup を繰り返すことで、何度でも検索結果を見直すことが出来ます。

検索結果を表示したまま最初のバッファに戻りたいときには、r を押せば OK です。h を連打すれば、Entry バッファと Content バッファの間を往復することも出来ます。

これだけ覚えておけば、日常の作業は十分に行なえるでしょう。しかし Lookup には、場合によって役に立ついくつかのコマンドが他にも用意されています。次章以降で、それらを含む Lookup の完全な機能について説明します。

さて、以上で Lookup を使うための短かいツアーも終了です。いかがでしょうか? Lookup はあなたの要望を満たしてくれそうですか? もし使っていて「もっとこんな機能が欲しいぞ」とかいうことがありましたら、遠慮なくメールででも伝えて下さい。

それでは、あなたのより快適な検索ライフを祈って。Happy Looking Up!

Lookup を利用するには
**************

この章では、Lookup のインストール後に行なわなければならない設定項目について説明します。プログラムのインストールについては、Lookup 配布物に附属のファイル INSTALL を参照して下さい。設定後の更なるカスタマイズについては、Customization を参照して下さい。

辞書の準備を整える
=========

Lookup では、以下の辞書の利用をサポートしています。自分の利用したい辞書を確認し、それぞれの下準備を整えて下さい。

辞書に合わせて設定する
===========

基本的な設定方法
--------

Lookup を利用するには、まず始めに辞書との直接のインターフェースとなる検索エージェント を選ぶ必要があります。利用出来る検索エージェントは Search Agents に一覧があるので、そちらを参照してどれを用いるか決めて下さい。

用いるエージェントが決まれば、変数 lookup-search-agents を設定します。これはエージェントの設定のリストで、リストの各要素は次の形式を取ります。

     (CLASS LOCATION [OPTION...])

CLASS には、エージェントの種類をシンボルで指定します。これは ndic とか ndtp とか言うエージェントの名前そのものです。

LOCATION には、辞書の所在を文字列により表します。何を指定すべきかは利用するエージェントにより異なるので、それぞれのエージェントについての説明を参照して下さい。これは省略可能な場合もあります。

OPTION は、エージェントに対する省略可能なオプションです。これはパラメータを名前付きで与えるためのもので、タグとなるシンボルと、値となる任意のオブジェクトとの cons によって表わします。いくつでも指定できます。

具体的な例を挙げましょう。例えば、次の設定では、

     (ndtp "dserver" :port 2010 :account "user@domain")

エージェントの種類は ndtp、辞書の所在は "dserver" で、オプション port に値 2010 を、オプション account に値 "user@domain" をそれぞれ指定しています。

各エージェントで具体的に何を設定すべきかは、それぞれのエージェントについての説明を参照して下さい。オプションについては、すべてのエージェントで共通に使えるものもあります。Agent Options を参照して下さい。

上のような設定を、利用するエージェントの数だけ並べたものが、実際の lookup-search-agents の値となります。例えば一つの典型的な例として、次のような設定が考えられるでしょう。

     ;; ホスト dserver で NDTP サーバが動いており、
     ;; スペルチェックの機能を有効とする場合。
     (setq lookup-search-agents
           '((ndtp "dserver") (ndspell)))

各種オプションの設定
----------

先の節では、エージェントにオプションを指定するやり方について説明しましたが、オプションは辞書にも設定することが可能です。実際、Lookup のエージェントや辞書はほとんど、何らかのオプション指定によってカスタマイズされるようになっています。オプションの設定は今後いろいろな場面で出てくるので、ここで一度詳しく説明しておきます。

Lookup で オプション とは、名前付きパラメータのことを意味します。つまり特定のシンボルをタグとして、それに対応させる形で値を設定します。これは典型的には、(KEY . VALUE) という cons の形で表現されます。

先程はエージェントのオプションとして、lookup-search-agents にオプションの cons のリストを設定しましたが、辞書の場合には変数 lookup-dictionary-options-alist を用いることが出来ます。

例えば辞書にオプション title を設定することを考えてみましょう。これは辞書のタイトルを変更するための共通オプションです。次のようにします。

     (setq lookup-dictionary-options-alist
           '(("ndtp+dserver:KOKUGO" ':title "国語辞典")
             ("ndeb+/cdrom:EIWA" ':title "英和辞典")
             ("ndeb+/cdrom:WAEI" ':title "和英辞典")))

先のエージェント・オプションの設定法とよく似ているのがわかると思います。辞書を特定するために、辞書ID(see Quick Startup)を文字列で指定しています。

しかしこの方法では、設定が増えてくると、ごちゃごちゃとして少々わかりづらくなってしまいます。そこで実際のオプション設定のために便利な関数 lookup-set-dictionary-option を用意しています。この関数は間接的に lookup-dictionary-options-alist を書き換えます。実用上はこの関数を利用し、lookup-dictionary-options-alist は直接に変更しない方がいいでしょう。上の例は、次の式と等価になります。

     (lookup-set-dictionary-option "ndtp+dserver:KOKUGO" ':title "国語辞典")
     (lookup-set-dictionary-option "ndeb+/cdrom:EIWA" ':title "英和時点")
     (lookup-set-dictionary-option "ndeb+/cdrom:WAEI" ':title "和英辞典")

ただし、これは関数なので、Lookup のプログラム・ファイルをロードしてからでないと利用出来ません。そこでプログラムのロード直後に設定が完了するよう、 Lookup 専用の初期化ファイル ~/.lookup を用いることが出来ます。これは後でまた詳しく説明します。(see Setup Example)

また、全ての辞書に対してデフォルトのオプションを設定するために、変数 lookup-default-dictionary-options が利用出来ます。オプションの cons をリストにして並べます。例えば次のように設定すれば、単語の語尾を取り除く処理をデフォルトで行なうようになります。

     (setq lookup-default-dictionary-options
           '((:stemmer .  stem-english)))

全ての辞書に対してではなく、ある特定のエージェントにだけデフォルトを設定したいこともあります。これは単純に、辞書オプションをエージェント・オプションと同じに並べるだけです。辞書オプションが指定されなかった場合、次にエージェント・オプションから同じものが探し出されます。ただし title の設定など、共有が無意味なものについてはその限りではありません。

辞書オプションと同様に、エージェント・オプションのためにも設定用の変数・関数が用意されています。それぞれ lookup-agent-options-alist、 lookup-set-agent-option、lookup-default-agent-options です。例えば辞書を無効化するには、次のように書くことも出来ます。

     (setq lookup-search-agents '((agent "location")))
     (lookup-set-agent-option "agent+location" ':disable '("KOKUGO" "WAEI"))

なお、オプション設定の優先順位は次の通りです。

  * 辞書オプション

      1. lookup-dictionary-options-alist

      2. lookup-default-dictionary-options

      3. エージェント・オプションから継続して検索

  * エージェント・オプション

      4. lookup-search-agents 設定時のオプション

      5. lookup-agent-options-alist

      6. lookup-default-agent-options

利用する辞書の制限
---------

変数 lookup-search-agents で設定されたエージェントは通常、Lookup の起動と同時に全て初期化され、そこに含まれる全ての辞書が利用されるものとして選択されます。しかし場合によっては、そのうち一部の辞書しか必要としないこともあるかもしれません。エージェントに次の共通オプションを与えることで、あらかじめ有効とする辞書を制限することが出来ます。

:enable
     有効とする辞書名のリスト。

:disable
     無効とする辞書名のリスト。

例えば、あるエージェントが三つの辞書 KOKUGO, EIWA, WAEI を持っているとしましょう。この内 EIWA だけを有効にしたいのであれば、次のように設定します。

     (agent "location" :enable ("EIWA"))

あるいは

     (agent "location" :disable ("KOKUGO" "WAEI"))

ここで指定すべき辞書名は、M-x lookup として表示される辞書一覧のバッファから知ることが出来ます(see Quick Startup)。最初にオプションなしで起動して含まれる辞書を確認し、後から設定を変更するとよいでしょう。

あるいは、無効にはしたくないが、滅多に用いないという辞書もあるかもしれません。上と同様に、次の共通オプションを与えることで、辞書の初期選択状態を変えることが出来ます。

:select
     選択する辞書名のリスト。

:unselect
     未選択にする辞書名のリスト。

未選択にされた辞書は、後から選択することで利用可能となります。 (see Specify Dictionary)

補助パッケージの利用
----------

Lookup では様々な種類の辞書を扱いますが、各エージェントでは対応しきれない辞書毎の細かな調整を行なうために、補助パッケージ というものが利用出来ます。これは辞書に固有の設定をまとめた設定ファイル集です。

補助パッケージがなくとも検索に支障はありませんが、それを用いることで出力がより見やすく整形されたり、不足する設定が補われたりと、使い勝手が良くなることは期待出来ます。

いくつかの辞書に対応した補助パッケージが Lookup のホームページに用意されているので、自分の辞書に対応したものがないか探してみて下さい (see How To Get)。もし期待のものが見付かれば、次のようにして準備して下さい。

まず、補助パッケージを適当なディレクトリに展開して下さい。展開するディレクトリを以下では パッケージ・ディレクトリ と呼びます。パッケージを展開するとディレクトリが一つ生成されますが、中のファイルをパッケージ・ディレクトリに移動しても構いません。また、生成されたディレクトリの名前を パッケージ名 と呼びます。

次に、初期化ファイル(~/.lookup; see Setup Example) で次のように設定します。

     ;; パッケージ・ディレクトリの設定
     (setq lookup-package-directory "/your/package/directory")

     ;; 『辞・典・盤97』のパッケージ利用
     (lookup-use-package "ndeb+/cdrom" "jitenban97")

変数 lookup-package-directory によりパッケージ・ディレクトリを設定します。lookup-use-package によりパッケージの読み込みを行ないます。第一引数はエージェントID、第二引数はパッケージ名です。

lookup-use-package は内部的には、Setup Option で説明した設定用関数 lookup-set-agent-option と lookup-set-dictionary-option を用いてオプション設定を行なっているだけです。従って一度パッケージを読み込んだ後でも、これらの関数を用いて更に設定を上書きすることや、同じエージェントに別のパッケージを重ねて適用することも可能です。

手持ちの辞書のパッケージが存在しない場合、それを自分で作ることも出来ます。 (see Supplement Package)

新しい検索コマンドを作る
============

既存のソースを参考にしてください。もし分からないことがあれば、メイリングリスト ( lookup-ja@ring.gr.jp ) に質問してみるとよいかもしれません。

その他の主な設定項目
==========

文字コードの設定
--------

UNIX では次のようにする。

     (setq default-coding-system 'euc-jp)

Windows では次のようにする。

     (setq process-coding-system-alist '(("eblook\\.exe\\'" . euc-jp)))

外字表示の準備
-------

Lookup は CD-ROM 書籍などに含まれる外字の表示をサポートしています。 (ただし、端末(tty)では表示出来ません。) 外字を表示するには、それぞれの検索エージェントで適切な設定を行なった上で、 Lookup を次のように設定して下さい。

 1. GNU Emacs 及び Mule の場合:

     Emacs でビットマップ表示を行なうための bitmap-mule パッケージを用いて外字を表示します。bitmap-mule は次のところから入手可能です。

     bitmap-mule
          ftp://ftp.jaist.ac.jp/pub/GNU/elisp/bitmap-mule/

     附属のドキュメントなどを参考にインストールを行なって下さい。もし設定がよくわからなければ、Lookup の FAQ にも情報があるので参考にして下さい。

     bitmap-mule の準備が出来たら、次のいずれかの方法で準備が完了です。

      1. Lookup の起動前に bitmap-mule をロードする。

          例えば ~/.emacs に (require 'bitmap) と書いておいて下さい。

      2. 初期化ファイルで lookup-use-bitmap を t にセットする。

          この場合、実際に外字を表示する際に bitmap-mule が読み込まれます。

 2. XEmacs の場合:

     特別な準備は必要ありません。Lookup は XEmacs の glyph の機能を利用して、外字を一種の画像として扱います。設定は自動で行なわれます。

逆に、外字を表示させたくない場合には、変数 lookup-enable-gaiji を nil に設定して下さい。これはデフォルトで t となっています。

スペルチェックの準備
----------

日頃から検索をしていると、入力のちょっとした誤りくらいは自動的に修正して検索を行なってくれると有り難く思います。Lookup には、入力された検索語を補正するためのいくつかの機能が備わっています。

単語の語尾を取り除く
..........

英語などで、単語の複数形や過去形などに付く余分な文字列を取り除き、原型を推測するための処理を stemming といいます。これが出来ると、文字列の修正なしに検索を行なえるので便利です。Lookup では、辞書オプション stemmer を指定することで、stemming を行なうよう設定出来ます。

オプション stemmer には、stemming を行なう関数を指定します。標準では、英単語用の stemming 関数 stem-english が備えられています。次のように設定して下さい。

     (lookup-set-dictionary-option "agent:DICT" ':stemmer 'stem-english)

これで指定した辞書から検索を行なうときには、stemming が行なわれるようになります。具体的には、次の手順で検索されます。

 1. 元の検索語で検索する。

     始めは入力をそのまま検索します。それで見付かれば何も問題ありません。

 2. 設定された stemming 関数で原型を推測する。

     stemming 関数は、文字列を受け取ってその原型の候補のリストを返します。 Lookup は候補のそれぞれについて、辞書から単語が見付かるまで検索を繰り返します。検索語が単純な複数形や過去形をしていれば、一度のやり直しで結果にたどり付けるはずです。

 3. 共通の語頭を持った似た単語を探し出す。

     例えば、lexicographer という語は載っていないが、 lexicography なら載っているという辞書があるかもしれません。 stemming ではそのようなケースに対応することは出来ませんが、参考程度にその情報を示してくれると親切です。そこで、ある程度の語長を持つ語を検索した場合に限って、Lookup は共通語頭を持つ語の検索に挑戦します。

これでも何も見付からなければ検索を諦めます。その場合、二回か三回の検索処理が無駄になりますが、遠隔地の辞書サーバにアクセスしているのでもない限り、これは大したコストではありません。よってあらかじめ厳格なスペルチェックを行なうよりも、この方式を用いる方が、効率的に自動補正を行なえます。

スペルチェックを行なう
...........

語尾だけの問題ではなく、綴りそのものを間違えたのでは何も見付かりません。そこで検索語のスペルチェックを行ない、その上で検索を行なう機能が欲しくなります。

Lookup のスペルチェック機能は、検索エージェント `ndspell' として実現されています(see ndspell)。lookup-search-agents の設定において、リストに ndspell を加えることでスペルチェックが行なわれるようになります。

ここでリストのどの位置に ndspell を加えるかが問題となります。ndspell を置く位置を変えることで、スペルチェックを行なうタイミングを変えることが可能です。

リストの最初に ndspell を置くと、いきなりスペルチェックを始めます。スペルミスがあまりにも多く、スペルチェックをしてから検索を始めたいという人には、この方法が向いているかもしれません。

しかし、検索の度に毎回スペルチェックを行なうというのは効率的ではありません。そこで ndspell をリストの最後に置くことで、まず他の辞書で一度検索を行ない、それでも何も見付からなかったときのみ、ndspell でスペルチェックを行なうようにすることが出来ます。ndspell は、そのような利用を想定して作られています。

もしどうしてもスペルチェックを行ないたいということがあれば、Entry バッファで g を押して再検索を行なうことで、ndspell にスペルチェックを強制することも可能です。より詳しくは、ndspell を参照して下さい。

初期化ファイルの設定例
===========

以下は、Lookup の具体的な設定例です。設定はすべて ~/.emacs で行なうことも可能ですが、専用の初期化ファイルとして lookup-init-file (~/.lookup) が Lookup 起動時に読み込まれるので、これを用いることにします。

初期化プロセスの概要
----------

まず Lookup の実行過程について大まかに説明します。

 1. Emacs の起動

 2. ~/.emacs の読み込み

 3. Lookup の起動

 4. Lookup プログラム・ファイル(*.elc)の読み込み

 5. Lookup 初期化ファイル(~/.lookup)の読み込み (存在すれば)

 6. lookup-load-hook の実行

 7. Lookup 初期化開始

このように Lookup のプログラム・ファイルは ~/.emacs よりも後から読み込まれるため、これまで説明したオプションやパッケージの設定用関数を用いるには、通常、次のいずれかの方法を用います。

 1. ~/.lookup を用いる。

     これが一番、普通のやり方です。~/.lookup を利用すれば、余計なことを気にせずに全ての設定を行なえます。

 2. lookup-load-hook を用いる。

     サイトで共通の設定を行なうような場合、~/.lookup を用いるわけにはいきません。あるいは、全てを ~/.emacs で行うというポリシーの人もいるかもしれません。そのような目的のために、~/.lookup と同様のタイミングで初期化を行なうための hook lookup-load-hook を用いることが出来ます。次のようにします。

          ;; load-hook の設定
          (add-hook 'lookup-load-hook 'init-lookup)

          ;; Lookup の設定内容
          (defun init-lookup ()
            (setq lookup-search-agents '((agent) ...))
            (lookup-set-agent-option "agent" ':key 'value)
            ...
            )

~/.emacs の設定
------------

~/.lookup を用いるにしても、キーバインドの設定等、いくつかのものは ~/.emacs で行なうことが必要です。以下にその例を示します。

     ;;;
     ;;; Lookup
     ;;;

     ;; キーバインドとオートロードの設定
     (define-key ctl-x-map "l" 'lookup)
     (define-key ctl-x-map "y" 'lookup-region)
     (define-key ctl-x-map "\C-y" 'lookup-pattern)
     (autoload 'lookup "lookup" nil t)
     (autoload 'lookup-region "lookup" nil t)
     (autoload 'lookup-pattern "lookup" nil t)

     ;; 自作コマンドを利用する場合
     (define-key help-map "\C-e" 'english-search-pattern)
     (autoload 'english-search-pattern "lookup" nil t)

     ;; 初期化ファイルを変更する場合
     (setq lookup-init-file "~/.lookup")

~/.lookup の設定
-------------

~/.lookup で辞書の設定を行ないます。これまで説明した通りです。

     ;;; .lookup --- setup for Lookup                -*- emacs-lisp -*-

     ;; 検索エージェントの設定
     (setq lookup-search-agents '((ndeb "/cdrom") (ndspell)))

     ;; 補助パッケージの読み込み
     (setq lookup-package-directory "~/emacs/lookup/packages")
     (lookup-use-package "ndeb+/cdrom" "mydict")

     ;; オプションの設定
     (lookup-set-dictionary-option "ndeb+/cdrom:EIWA" ':title "英和辞典")

     ;; 外字利用の設定
     (setq lookup-use-bitmap t)

     ;; 自作コマンドの定義
     (defvar english-search-module
       (lookup-new-module '((ndeb "/my/english/dictionary"))))

     (defun english-search-pattern (pattern)
       (interactive "sLook up: ")
       (lookup-with-module english-search-module
         (lookup-search-pattern pattern)))

     ;;; .lookup ends here

サイト毎の共通設定
---------

Lookup の設定をサイトで共有するのであれば、site-start.el ファイルに設定を加えます。次のような感じにすればいいでしょう。

     ;;;
     ;;; Lookup Site Start
     ;;;

     ;; オートロードの設定
     (autoload 'lookup "lookup" nil t)
     (autoload 'lookup-region "lookup" nil t)
     (autoload 'lookup-pattern "lookup" nil t)

     ;; load-hook の設定
     (add-hook 'lookup-load-hook 'site-start-lookup)

     (defun site-start-lookup ()
       ;; 検索エージェントの設定
       (setq lookup-search-agents '((ndtp "dserver")))

       ;; 補助パッケージの設定
       (setq lookup-package-directory "/net/share/emacs/lookup/packages")
       (lookup-use-package "ndtp+dserver" "ourdict")
       )

セットアップ変数一覧
==========

lookup-init-file
     Lookup の初期化ファイル名。デフォルトは ~/.lookup。このファイルは lookup.el のロード直後に読み込まれる。

lookup-load-hook
     Lookup のロード完了直後に実行される hook。 lookup-init-file の読み込み直後に実行される。

lookup-search-agents
     検索エージェントの設定のリスト。リストの各要素は次の形式を取る:

          (CLASS LOCATION [OPTION...])

     CLASS には、エージェントの種類をシンボルで指定する。 LOCATION には、エージェントの所在を文字列で指定する。 ARG は省略可能で、エージェントに対する追加の引数を指定する。 OPTIONS は省略可能で、同じく追加のオプションを指定する。

          例: (setq lookup-search-agents
                    '((ndtp "dserver" :port 2010)
                      (ndeb "/cdrom" :enable ("EIWA"))))

lookup-default-agent-options
     検索エージェントにデフォルトで与えるオプションのリスト。各オプションは、タグとなるシンボルと、値となる任意のオブジェクトとの cons によって表わす。

lookup-agent-options-alist
     検索エージェントのオプションを設定する連想リスト。各要素の car にはエージェントID("CLASS+LOCATION")を指定し、 cdr にはオプションのリストを指定する。

lookup-default-dictionary-options
     辞書にデフォルトで与えるオプションのリスト。各オプションは、タグとなるシンボルと、値となる任意のオブジェクトとの cons によって表わす。

lookup-dictionary-options-alist
     辞書のオプションを設定する連想リスト。各要素の car には辞書ID("CLASS+LOCATION:NAME")を指定し、 cdr にはオプションのリストを指定する。

lookup-package-directory
     補助パッケージが収められるディレクトリ。

セットアップ関数一覧
==========

lookup-set-agent-option ID TAG VALUE
     検索エージェントのオプションをセットする。 ID はエージェントID。TAG はオプションのタグ。 VALUE はセットする値。

lookup-set-dictionary-option ID TAG VALUE
     辞書のオプションをセットする。 ID は辞書ID。TAG はオプションのキー。 value はセットする値。この関数は lookup-dictionary-options-alist の値を書き換える。

lookup-use-package AGENT-ID PACKAGE-NAME
     補助パッケージをロードする。 AGENT-ID は、パッケージを適用するエージェントID。 PACKAGE-NAME は、パッケージ名、あるいはパッケージの絶対パス。絶対パスでない場合、パッケージは変数 lookup-package-directory が示すディレクトリに展開しておく必要がある。この関数は lookup-agent-options-alist 及び lookup-dictionary-options-alist の値を書き換える。

検索を行なうには
********

この章では、Lookup で検索を行なう方法について詳しく説明します。また、特定の辞書から情報を得るための方法についても説明します。

起動と終了
=====

最初に Lookup を起動するためのコマンドは M-x lookup です。これは利用出来る辞書の一覧をバッファに表示し、辞書選択モードに入ります。このバッファでの操作については、Specify Dictionary を参照して下さい。

M-x lookup を用いずとも、次節の検索コマンドをいきなり実行しても構いません。一度検索が行なわれると、M-x lookup は最後の検索結果を再表示するようになります。一度 Lookup のウィンドウを閉じた後でも、もう一度結果を見返すのに使えます。

Lookup を抜けるためのコマンドは M-x lookup-suspend です。これは Lookup の各ウィンドウをいったん閉じて、検索を中断します。検索を完全にやめてしまうときには、M-x lookup-exit が使えます。これはバッファやキャッシュの削除、サブプロセスの終了などの作業を行ないます。Lookup の各バッファでは、これらのコマンドはそれぞれ q と Q によって直接、または間接的に呼び出されます。

Lookup を抜けたとき、変数 lookup-save-configuration の値が non-nil であれば、画面が検索を開始したときの状態に戻されます。これはデフォルトで t に設定されています。

Lookup の初期化ファイルを書き換えたときには、コマンド M-x lookup-restart が利用出来ます。これは Lookup をいったん終了させた後、~/.lookup を読み直して再初期化を行ないます。これは通常 R に割り当てられています。

文字列検索
=====

Lookup のもっとも一般的な検索方法は、検索語となる文字列を指定して検索を行なうことです。以下、これについて詳しく説明します。

標準の検索コマンド
---------

Lookup 標準の検索コマンドには、代表して次の五つのものがあります。

M-x lookup-pattern
     ミニバッファからの入力を検索語に検索を開始します。デフォルトの検索語として、ポイント位置の単語が取り出されます。

     この時、変数 lookup-use-kakasi の値が non-nil であれば、 KAKASI プログラムを利用して日本語の単語もそれなりに切り出します。これはデフォルトでは nil になっています。 (この機能は現在 Mule では動作しません。)

     最近の Emacs であれば、デフォルトの検索語はミニバッファで M-n とすることで編集することが出来ます。

M-x lookup-region
     リージョンの文字列を検索語に検索を開始します。

M-x lookup-word
     ポイント位置の単語を検索語に検索を開始します。

lookup-selection
     マウスによる選択領域を検索語に検索を開始します。

     これをマウスの適当なボタンにバインドしておくと、それをクリックすることで、そのときのマウスによる選択領域を検索語に検索を行なうことが出来ます。選択領域は Emacs のバッファである必要はなく、他のアプリケーション上であっても構いません。

     これはイメージとしては、X Window System でのマウスによるコピー＆ペーストとよく似ています。最初にコピーしたい領域をマウスで選択し、その後、コピー先のバッファで中ボタンをクリックすることでコピーは完了します。それと同様に、次のように設定しておくことで、Emacs のバッファにペーストする代わりに、 Lookup が検索を行なうようになります。

          (global-set-key [mouse-2] 'lookup-selection)

     ただし、こうしてしまうと、標準のペーストの動作が使えなくなったりするので、実際には別のクリックにバインドしておくとよいでしょう。

lookup-secondary
     マウスによる第二選択領域を検索語に検索を開始します。

     Emacs の Secondary Selection の機能を用いて検索を行ないます。 (現在、XEmacs では動作しません。たぶん。)

     Secondary Selection とは、ポイントを移動させることなくマウスで特定領域を選択するための機能で、デフォルトでは M-Mouse-1 にバインドされています。See Secondary Selection (emacs).

     これをうまく用いることで、マウスのダブルクリックやドラッグによって文字列を選択するだけで検索が行なえるようになっています。もし標準のバインドを置き換えてよいのであれば、次のように設定して下さい。

          (global-set-key [M-down-mouse-1] 'lookup-secondary)
          (autoload 'lookup-secondary "lookup" nil t)

     新たに定義するのであれば、例えば次のようにします。

          (global-set-key [S-mouse-1] 'mouse-start-secondary)
          (global-set-key [S-drag-mouse-1] 'mouse-set-secondary)
          (global-set-key [S-down-mouse-1] 'lookup-secondary)
          (autoload 'lookup-secondary "lookup" nil t)

     後者の例では、Shift キーを押しながら左のダブルクリックでカーソル位置の単語を、同じく領域をドラッグすることで選択部を検索するようになります。

これら四つのコマンドには更に、-full-window と -other-frame を付加したバリエーションがあります。つまり、全部で以下の十五の標準検索コマンドが用意されています。

M-x lookup-pattern
     検索語を入力して検索する。

M-x lookup-pattern-full-screen
     M-x lookup-pattern と同じ。結果を画面全体で表示する。

M-x lookup-pattern-other-frame
     M-x lookup-pattern と同じ。結果を別のフレームで表示する。

M-x lookup-region
     リージョンの文字列を検索語に検索する。

M-x lookup-region-full-screen
     M-x lookup-region と同じ。結果を画面全体で表示する。

M-x lookup-region-other-frame
     M-x lookup-region と同じ。結果を別のフレームで表示する。

M-x lookup-word
     ポイント位置の単語を検索語に検索する。

M-x lookup-word-full-screen
     M-x lookup-word と同じ。結果を画面全体で表示する。

M-x lookup-word-other-frame
     M-x lookup-word と同じ。結果を別のフレームで表示する。

lookup-selection
     マウスでの選択領域を検索語に検索する。

lookup-selection-full-screen
     lookup-selection と同じ。結果を画面全体で表示する。

lookup-selection-other-frame
     lookup-selection と同じ。結果を別のフレームで表示する。

lookup-secondary
     Secondary Selection の文字列を検索語に検索する。

lookup-secondary-full-screen
     lookup-secondary と同じ。結果を画面全体で表示する。

lookup-secondary-other-frame
     lookup-secondary と同じ。結果を別のフレームで表示する。

-other-frame となっている各コマンドを用いたときのフレームのパラメータは、変数 lookup-frame-alist により与えられます。

標準の検索方式
-------

M-x lookup-pattern で検索したい単語を入力したり、 M-x lookup-region などで検索語を指定したときの標準の検索方式を単語検索 と呼びます。これは実際には固有の検索方式ではなくて、後述する各種の検索方式を間接的に呼び出すためのものです。

通常、検索語と完全にマッチしたエントリを探し出すことを「完全一致検索」と言いますが、Lookup では多種類の辞書を扱う関係から、これをデフォルトとしてしまうのでは少し問題があります。例えば emacs という単語を検索するとき、辞書によっては見出し語として GNU Emacs としか持たないために、それが見付からないということがあります。これは辞書側の問題だと言えばそうかもしれませんが、やはりそれでは不便なので、少し工夫が必要です。

もし辞書が GNU Emacs という見出し語しか持たなくとも、完全一致検索ではなく「キーワード検索」でということなら、それを見付け出すことも出来るかもしれません。そのため標準の検索方式としては、辞書によって実際の検索方式を切り換えながら検索してくれるのが便利です。そのため単語検索は、状況に応じて実際の振る舞いを適当に変化させるようになっています。

単語検索が実際に行なう検索方式は、変数 lookup-default-method により設定することが出来ます。これはデフォルトでは exact、つまり完全一致検索となっています。これを前方一致検索にしたければ prefix とします。可能な検索方式とそれに対応したシンボル名については、 Search Methods を参照して下さい。

いくつかの検索エージェントでは、デフォルトの検索方式を上書きして、例えばキーワード検索を行なうように設定されています。詳しくはエージェントの各節を参照して下さい。また、特定のエージェントや辞書での検索方式を変えるには、辞書オプション default-method を用いることが出来ます。

検索方式のいろいろ
---------

文字列を指定する検索の中でも特に、M-x lookup-pattern のように特定のパターンを入力して行なう検索のことを、Lookup では パターン検索と呼びます。パターン検索では、次のような特殊なパターンを指定することで、様々に検索方式を切り換えることが可能です。それぞれの検索方式には固有のシンボル名と記号が関連付けられており、いくつかの場所で利用されます。

word
単語検索 (default, ~)
     標準の検索方式です。これは実際には、下記のいずれかの検索方式を間接的に呼び出すようになっています。See Default Method.

'word'
完全一致検索 (exact, =)
     与えられた文字列と完全に一致する見出し語を持つエントリを検索します。この例では word や Word などが見付かります。

word*
前方一致検索 (prefix, <)
     与えられた文字列を見出し語の先頭に持つようなエントリを検索します。この例では wordage や wording などが見付かります。

*word
後方一致検索 (suffix, >)
     与えられた文字列を見出し語の末尾に持つようなエントリを検索します。この例では keyword や headword などが見付かります。

*word*
部分一致検索 (substring, -)
     与えられた文字列を見出し語の一部に含むようなエントリを検索します。この例では unwordy や swordsman などが見付かります。

w*o?d
グロブパターン
     上の三つを更に進めた表現として、任意のグロブパターンが指定出来ます。つまり文字 * が任意の文字列とマッチし、文字 ? が任意の一文字とマッチします。この例では word や womanhood などが見付かります。

     この検索パターンは、実際にはパターンを正規表現に変換して検索を行ないます。今の例では ^w.*o.d$ のように変換されます。従って、これを用いるには辞書が次の正規表現検索に対応していなければなりません。

/word/
正規表現検索 (regexp, r)
     与えられた正規表現とマッチする見出し語を持つエントリを検索します。入力はそのまま検索エージェントに渡されるため、正規表現のスタイルは利用するエージェントに依存します。

@word
キーワード検索 (keyword, @)
     辞書が見出し語だけでなくエントリ毎のキーワードを持つ場合、このパターンによってそれを検索することが出来ます。何をキーワードとして持つかは利用する検索エージェントによって異なるため、それぞれのエージェントについての説明を参照して下さい。

/word
全文検索 (text, /)
     これは他の検索方式とは少し異なります。他のものは辞書にあらかじめ用意されているインデックスから検索を行ないますが、これは辞書の全体から力ずくで検索語を探し出します。そのためしばしば非常に多くの検索時間を必要とするため、この検索パターンを指定すると確認のためのプロンプトが表示されます。

リファレンス (reference, %)
     これは検索方式ではありませんが、同じく記号が割り当てられているのでここで説明しておきます。リファレンス とは、あるエントリと関連付けられている別のエントリのことを言います。通常、Web ページと同様に、エントリ本文から別のエントリへとリンクが張られています。

     他の検索方式を利用したのではなく、リンクを辿ってリファレンスを表示したときには、そのときの検索方式として上の記号が用いられます。

以上の全ての検索方式に辞書が対応しているわけではありません。辞書が対応している検索方式を知るためには、最初に M-x lookup としたとき出力される辞書一覧バッファを参照して下さい。(see Specify Dictionary)

辞書が対応していない検索法が指定された場合には、現在は単純に無視されます。これは将来的には未対応の通知を出すように変更するかもしれません。

検索結果の眺め方
========

Lookup で検索が行なわれると、その結果は二つのウィンドウに分かれて表示されます。一つは見つかったエントリの一覧を並べるためのもので、もう一つは各エントリの本文を見るためのものです。以下、これらを見る方法について詳しく説明します。

エントリを順に見る
---------

Entry バッファ(see Quick Search)には、検索の結果、見付かったエントリの一覧が表示されます。n(ext) と p(revious) を押すことで、ポイントを前後に移動して表示するエントリを切り換えることが出来ます。マウスの中ボタンでクリックすることで、エントリを直接選択することも可能です。

v(iew) により Overview モードに入ります。これは Content バッファのウィンドウをクローズし、エントリの一覧を一時的に見やすくします。Overview バッファでは、n と p が単にポイントの移動だけを行なうようになります。もう一度 v とするか SPC を押すことで、Overview モードを終了して元の動作に戻ります。

Lookup は、過去に行なわれた検索の結果を履歴として記憶しています。過去の検索結果を参照するには M-p を押していって下さい。逆に、元の検索結果に戻るには M-n を押して下さい。

本文を詳しく見る
--------

Content バッファ(see Quick Search)には、選択されているエントリの本文が表示されます。これは SPC と DEL によって、Entry バッファ内から前後にスクロールすることが出来ます。バッファの最後(最初)まで達すると、次(前)のエントリに移動します。また、< や > によって、本文の最初と最後に移動することも出来ます。

o(pen) を押すと、Lookup のウィンドウを画面全体に拡げて、Content バッファの内容を広く見ることが出来ます。Lookup のウィンドウを一度閉じれば、次からまた元に戻ります。

s(earch) によって、Content バッファで isearch-forward を実行します。これを抜けるには C-g などとして下さい。

現在参照しているエントリの情報を i(nfo) によって知ることが出来ます。また、t(oggle) によって、本文を整形する前のオリジナルの辞書内容を見ることが出来ます。これらの情報は本文をカスタマイズする際に利用することが出来ます。

リファレンスを参照する
-----------

エントリがリファレンスを持つ場合、L(inks) を押すことでそれを新たに Entry バッファに一覧します。単一のリファレンスのみ参照したい場合には、まず h で Content バッファに移動し、TAB の連打で目的のリンクに移動した後、RET とすればそれを辿ることが出来ます。あるいは目的のリンクを直接、マウスの中ボタンでクリックしても構いません。

用いる辞書や検索エージェントによっては、リンクが見辛かったり、リンクを辿ると一覧の見出しがおかしくなるなどの不満があるかもしれません。これは辞書毎の差異に Lookup がデフォルトでは対応しきれないためです。リンクをより見やすくするためには、Reference Pattern を参照して各自で設定を行なって下さい。

本文を引用する
-------

Entry バッファで w(rite) を押すと、エントリの本文をキルリングに保存します。このとき次の変数によりその振る舞いを調節出来ます。

lookup-cite-style
     エントリ本文を引用するときのスタイル。

     asis にすると、Content バッファの内容がそのままコピーされる。 plain にすると、プレーンテキストとして見やすいよう変換される。次のように alist を指定することで、更に細かく設定することも可能。

          ((KEY1 . VALUE1) (KEY2 . VALUE2) ...)

     KEY としては、次のものが指定可能。

     gaiji
          外字をコピーするときのスタイル。値として次のものが可能。

          glyph
               Content バッファに表示される内容。(asis)

          alternate
               gaiji-table で指定された代替文字。(plain)

          任意の文字列
               その文字列を利用。

lookup-cite-header
     エントリ本文を引用するときのヘッダ。

     コマンド M-x lookup-entry-cite-content 及び M-x lookup-content-cite-region により内容を取り込むとき、その先頭に指定した文字列が付け加えられる。文字列が %T を含む場合、辞書のタイトルに置き換えられる。

lookup-cite-prefix
     エントリ本文を引用するときのプレフィクス。

     コマンド M-x lookup-entry-cite-content 及び M-x lookup-content-cite-region により内容を取り込むとき、各行の先頭に指定した文字列が付け加えられる。

例えば、設定を次のようにしておくと、

     (setq lookup-cite-style '((gaiji . "□")))
     (setq lookup-cite-header "「%T」より\n")
     (setq lookup-cite-prefix "| ")

次のような内容が保存されます。

     「国語辞典」より
     | テスト
     | □ 1. 試験....

これらの変数に対応して、それぞれ辞書オプション cite-style, cite-header, cite-prefix が指定することで、その設定が優先的に利用されます。(see Dictionary Options)

また、Content バッファに移動して w を押すことで、そのときのリージョンの文字列だけコピーすることも可能です。 (ただし現在、このとき cite-style の指定は無効です。手抜き・・・)

特定の辞書を利用する
==========

Lookup の設定後、最初に M-x lookup とするか、あるいは検索開始後に Entry バッファ(see Entry Mode)で S とすることで、Select モードに入ります。

このバッファには利用可能な辞書の一覧が表示されます。% とある列には辞書の選択状態が示されており、* が選択、空白( )が未選択であることを表わしています。

Identifier とある列には辞書の ID が示されます。これは主に設定のために用いられ、辞書の属する検索エージェントのクラス(CLASS)とその所在(LOCATION)、そして辞書名(NAME)を用いて CLASS+LOCATION:NAME として表されます。

title とある列には、辞書のタイトルが示されます。これは主に表示のために用いられ、辞書オプション title によって変更可能です。 (see Dictionary Options)

Methods とある列には、辞書が対応している検索方式が示されます。ここに並べられる記号の列は、一文字がそれぞれ一つの検索方式を意味しています。その対応については、Search Methods にある一覧を参照して下さい。

バッファで ?と入力すると、利用可能なコマンドについての簡易ヘルプが表示されます。バッファを抜けるとヘルプも閉じられます。

コマンド gで現在のモジュールを初期化し直し、バッファを更新します。ただし、これはモジュール自体を再設定するわけではないので、設定ファイルでモジュールの設定を変えた場合には、 Rにより Lookup を再起動する必要があります。

qでバッファを抜けます。 Qで Lookup を終了します。

nと pによって、ポイントを上下に移動します。

mによりその行の辞書を選択し、 uにより非選択にします。また、 M-x lookup-select-toggle-selectedにより選択状態をトグルすることも可能です。

aにより、全ての辞書を選択状態にします。RETにより、その行の辞書だけを選択状態にすることも出来ます。

dを押すと、辞書に無効化のマークが付けられます。これは xを押すことで実際に無効化されます。こうして無効化された辞書でも、Lookup を再起動するか、g とすると元に戻ります。辞書を恒久的に無効化するためには、オプションにより設定して下さい。(see Setup Restriction)

fによって、選択状態にある辞書から検索を行ないます。これは実際には、普通に M-x lookup-pattern を行なうのと同じです。

Mにより、辞書専用のメニューに移ることが出来ます。これは実際にはただの Entry バッファで、リファレンスを辿っていくことにより辞書を「読む」ことが出来ます。

/とすると、ポイント行の辞書から全文検索を行ないます。ただしもちろん、辞書が全文検索に対応している必要があります。全文検索は完了までに非常に時間が掛かる場合があるので注意して下さい。(see Search Methods)

自分好みに調節する
*********

この章では、Lookup を個人の好みに応じて調節するための方法について説明します。また、辞書毎の一般的なカスタマズをまとめて設定ファイル集として配布する方法についても説明します。

[ この章はまだ整備途中です ]

一般的なカスタマイズ
==========

Lookup の全般に関わるカスタマイズ変数の多くは、Custom パッケージを利用することで変更可能です。Lookup を起動後 M-x customize-group RET lookup RET とすれば、設定出来る変数の一覧を見ることが出来ます。

主なカスタマイズ変数
----------

lookup-default-method
     デフォルトの検索方式を指定する。

lookup-frame-alist
     フレームのパラメータのリスト。

lookup-fill-column
     エントリ内容を fill するときの桁数。

lookup-window-height
     Entry バッファ等のウィンドウの高さ。

lookup-save-configuration
     non-nil を指定すると、Lookup を抜けたときに画面の状態が検索開始時のものに戻される。

lookup-use-bitmap
     non-nil に指定すると、bitmap-mule を利用した外字表示を行なうようになります。bitmap-mule が既にロードされていれば自動的に t になります。 Setup Gaiji を参照して下さい。

lookup-use-kakasi
     non-nil に指定すると、KAKASI を用いて日本語の検索語の切り出しを行なうようになります。Search Commands を参照して下さい。

lookup-enable-gaiji
     nil に指定すると、外字の表示を行なわなくなります。Setup Gaiji を参照して下さい。

lookup-max-hits

lookup-max-text
     表示するエントリの上限数、及びエントリ本文の上限サイズを定めます。これらは現在 ndeb でのみ有効です。

lookup-cite-style
lookup-cite-header
lookup-cite-header
     エントリ本文を引用するときのスタイル、ヘッダ、プレフィクスを設定する。 Cite Contents を参照。

文字装飾のカスタマイズ
-----------

Lookup ではフェイス(文字装飾)の設定に Custom パッケージの defface を用いています。これをカスタマイズするには、M-x customize-group RET lookup-faces RET などとして設定を行なって下さい。

Mule を利用しているなど、Custom がインストールされてない場合には、Lookup の初期化ファイル(~/.lookup)で設定を行なう必要があります。これは次のようにして行ないます。

     ;; lookup-heading-1-face の設定
     (set-face-bold-p 'lookup-heading-1-face t)
     (set-face-foreground 'lookup-heading-1-face "SlateBlue")

設定出来るフェイスは次の通りです。

lookup-heading-1-face
     本文の最初の見出し(通常、一行目)に付けられるフェイス。

lookup-heading-2-face
     本文が構造を持つ場合、二番目の見出しに付けられるフェイス。

lookup-heading-3-face
     本文が構造を持つ場合、三番目の見出しに付けられるフェイス。

lookup-heading-4-face
     本文が構造を持つ場合、四番目の見出しに付けられるフェイス。

lookup-heading-5-face
     本文が構造を持つ場合、五番目の見出しに付けられるフェイス。

lookup-heading-low-face
     本文が構造を持つ場合、あまり重要でない部分に付けられるフェイス。

lookup-reference-face
     本文のリンク部分に用いられるフェイス。

lookup-refered-face
     本文の参照済みリンクに用いられるフェイス。

設定には次のような関数が利用出来ます。

set-face-foreground
     フェイスの文字色を指定する。

set-face-background
     フェイスの背景色を指定する。

set-face-bold-p
     フェイスを太字にする。

set-face-italic-p
     フェイスを斜体にする。

set-face-underline-p
     フェイスを下線付きにする。

辞書とエージェントのカスタマイズ
================

エージェント・オプション一覧
--------------

検索エージェントにオプションを設定することで、その振舞いのカスタマイズが可能です。(see Setup Option)

オプションには全てのエージェントで共通に利用出来るものと、エージェント毎に異なるものとがあります。検索エージェント別のオプションは、それぞれのエージェントについての説明を参照して下さい。共通オプションとしては、次のものが利用出来ます。

:alias
     エージェントに別名を与える。エージェントID は普通 CLASS+LOCATION として与えられるが(see Quick Startup)、このオプションにより LOCATION の部分を置き換えられる。当然ながら、これは lookup-search-agents で設定しなければならない。次のように用いられる。

          (setq lookup-search-agents
                '((ndic "/usr/lib/dict" :alias "dict")))
          (lookup-use-package "ndic+dict" "dict-package")

:title
     検索エージェントにタイトルを設定する。これは現在、用いられていない。

:enable
     有効とする辞書名のリスト。(see Setup Restriction)

:disable
     無効とする辞書名のリスト。(see Setup Restriction)

:select
     選択する辞書名のリスト。(see Setup Restriction)

:unselect
     未選択にする辞書名のリスト。(see Setup Restriction)

辞書オプション一覧
---------

辞書は、オプションを設定することによりカスタマイズが可能です。 (see Setup Option)

次のオプションが利用出来ます。

:title
     辞書のタイトルを指定する。

:stemmer
     stemming 関数を指定する。これは複数形など単語の語尾を取り除いて元の単語を推測するための関数で、文字列を受け取り候補となる文字列のリストを返さねばならない。次のように設定する。

          (lookup-set-dictionary-option "agent:DICT" ':stemmer 'stem-english)

:arranges
     arrange 関数のリスト。(see Format Contents)

:adjusts
     adjust 関数のリスト。(see Format Contents)

:gaiji-table
     外字の置き換えテーブル。(see Gaiji Table)

:cite-style
:cite-header
:cite-prefix
     それぞれ、lookup-cite-style, lookup-cite-header, lookup-cite-prefix の代わりに優先して用いられる。 (see Cite Contents)

この内、title と gaiji-table を除く全てのオプションは、エージェント・オプションとして設定することも可能です。

エージェントによっては、これ以外にも特別な辞書オプションが利用出来る場合があります。それぞれのエージェントの説明を参照して下さい。

エントリ本文のカスタマイズ
=============

リファレンスの設定
---------

リファレンスの書式はしばしば辞書によって異なるので、Lookup のデフォルトの設定だけではどうしても対応し切れません。Entry バッファで t を押すと、本文整形前のオリジナルの内容を見ることが出来るので、その内容を確認してみて下さい。

もしデフォルトで生成されるリンクに不満がある場合、辞書オプション reference-pattern によりカスタマイズすることが可能です。設定すべき値は次の通りです。

     (REGEXP LINK HEADING CODE)

REGEXP には、本文のリファレンス部分にマッチする正規表現を指定します。例えば、リファレンスが次のようなパターンをしているとわかっている場合、

     <gaiji:za123>heading<a456:789>

REGEXP は次のように出来るでしょう。 (XEmacs でならもっと単純に "<gaiji:za123>.+?<[0-9a-f:]+>" とすることが出来ます。)

     "<gaiji:za123>[^<\n]+<[0-9a-f:]+>"

LINK, HEADING, CODE にはそれぞれ、リンクとなる文字列、リファレンスの見出し語、及びそのコード番号を指定します。今の場合、リンクは <gaiji:za123>heading、見出し語は heading、コード番号は a456:789 とすればよいでしょう。これには REGEXP のマッチ内容を利用して、次のように設定することが出来ます。

     ("\\(<gaiji:za123>\\([^<\n]+\\)\\)<\\([0-9a-f:]+\\)>"
      (match-string 1) (match-string 2) (match-string 3))

このように link, HEADING, CODE には文字列を返す任意の式を用いることが可能ですが、上のように match-string でマッチ内容を単純に取り出すだけの場合、特別に省略して番号を指定するだけでよいようになっています。

     ("\\(<gaiji:za123>\\([^<\n]+\\)\\)<\\([0-9a-f:]+\\)>" 1 2 3)

また、外字置き換えは別のステップで行なわれるため、この時点ではどうこうする必要はありません。見出し語に外字が含まれる場合にも、それをそのまま返すように設定して下さい。典型的には次のようなパターンをよく見ます。 (XEmacs でならやはり単純に ("\\(→\\(.+?\\)\\)<\\([0-9a-f:]+\\)>" 1 2 3) で OK です。)

     ("\\(→\\(\\([^<\n]\\|<gaiji:[^>]>\\)+\\)\\)<\\([0-9a-f:]+\\)>" 1 2 4)

自分の辞書に合わせた適切なパターンを作られた方は、メーリングリストにでも情報を頂けますと幸いです。

外字置き換えの設定
---------

辞書オプション gaiji-table により、辞書の外字の置き換えテーブルを設定することが出来ます。

外字置き換えとは、外字表示の際に辞書に用意されている外字を用いることをせずに、あらかじめ定義しておいた設定に従ってそれの置換文字列を利用することを言います。このための変換表を 外字テーブル と呼び、関数 lookup-new-gaiji-table により生成します。

これは次のような書式を取ります。

     (lookup-new-gaiji-table
      '((CODE1 GLYPH1 [ALTERNATE1])
        (CODE2 GLYPH2 [ALTERNATE2])
         ...))

CODE は辞書における外字コードで、これはエントリ本文の整形処理を OFF にすることで確認出来ます。GLYPH には文字列、または評価可能な式を指定し、その値が外字の置換文字列として利用されます。ALTERNATE は省略可能で、外字の代替文字列を指定します。これはGLYPH と違って、一般的に利用される文字セットでなければなりません。

GLYPH と ALTERNATE との違いは、それが見た目を重視するか利便性を重視するかにあります。GLYPH にはアクセント文字などを含む文字列を指定することで見た目を良くすることが出来ますが、その場合、検索やコピーのための利便性が犠牲になります。そのため、表示のためにはGLYPH を用い、利便性を重視する状況では ALTERNATE を用いるという使い分けが行なわれます。

テキストの整形
-------

エントリ内容の整形処理は、二つのステップで行なわれます。一つは arrange と呼び、主に辞書から得られた内容に手を加えます。もう一つは adjust と呼び、こちらは見た目の調節を主とします。二つの本質的な違いは、その結果がキャッシュされるかどうかにあります。

内容が arrange された結果はキャッシュに残り、次回の表示からはそれに手を加えられません。対して adjust は表示を行なう度に毎回実行されます。そのため fill-lines のような大掛かりな一度きりの修正は arrange で行ない、リファレンスの色を変えるような毎回チェックの必要なものは adjust で行なうのが向いています。

辞書の arrange 関数と adjust 関数は、どちらもデフォルトの処理がエージェントで定義されています。しかしそれらは不十分なことが多いため、辞書毎にオプションによってこれらを変更することが出来ます。

arrange 関数を設定するための辞書オプションは arrange、adjust 関数は adjust です。これらにはそれぞれ関数のリストを設定します。

arrange 関数も adjust 関数も、呼び出されるタイミングが違うだけで、内部的には同じものです。どちらも一つの引数を受け取り、その値は無視されます。引数は entry データタイプのオブジェクトで、呼び出されたときの current-buffer はエントリ内容の挿入された Content バッファ、そのポイントはバッファの先頭になっています。

関数内では current-buffer を変更してはなりませんが、ポイントと restriction は自由に変えても構いません。それらは次の関数呼び出しでまた元に戻ります。ただし、最後の adjust 関数が実行するポイント移動には意味があります。Content バッファは、最後のポイントが見えるように表示されます。従って adjust 関数の最後には、バッファの先頭への移動だけを行なう関数を設けておくのが普通です。

これらの関数を書くには、ある程度 Lookup の内部構造についての知識が必要になるかもしれません。Lookup が用いるデータタイプについては、ファイル lookup-types.el を参照して下さい。標準の arrange 関数、adjust 関数については、ファイル lookup-vse.el を参照して下さい。

補助パッケージを作る
==========

前述の arrange 関数や外字置き換えテーブルなどは、個人の好みを越えて他人のためにも有用な場合が多いので、それらの設定をまとめて補助パッケージを作ることが出来ます。(see Setup Package)

補助パッケージとは実際には、前述したエージェント・オプションや辞書オプションを設定しているだけのものですが、その設定には専用のやり方が用意されています。パッケージの書き方については、ファイル lookup-package.el の先頭に記述があるので、そちらを参照して下さい。

パッケージをある程度自動的・対話的に生成するツールも以前はありましたが、今では動いていません。書き直すことに興味のある方いらしましたら、メーリングリストの方まで連絡下さい。(see How To Get)

もし市販の辞書用の補助パッケージを作られましたら、メーリングリストに連絡下さい。Lookup のホームページに登録させて頂きます。

詳細な設定例
======

[ この節はまだ整備途中です ]

辞書フォーマット一覧
**********

SDIC フォーマット
===========

SDIC フォーマット とは、Emacs で使える簡易検索ソフト SDIC (http://pine.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic/) で採用されている行指向の辞書形式です。Lookup では ndic エージェントにより検索が行なえます。(see ndic)

SDIC フォーマットの特徴
--------------

  * 単一ファイル、一行一エントリの簡潔な構成。

  * grep 一つで高速な検索が可能。

  * いくつかのフリー辞書が入手可能。

SDIC フォーマットの概要
--------------

SDIC 辞書は .sdic を拡張子とする単一のファイルからなり、次のような内容になっています。

     <H>Foo</H><K>foo</K>This is first entry.
     <H>Bar Baz</H><K>bar</K><K>baz</K>This is second entry.
     ...

<H> ... </H> となっている部分がエントリの見出し、 <K> ... </K> となっている部分が検索に用いられるキーワード、最後の部分が説明内容です。検索は次のようにして行なわれます。

grep <K>word</K> dict.sdic
     完全一致検索

grep <K>word dict.sdic
     前方一致検索

grep word</K> dict.sdic
     後方一致検索

grep word dict.sdic
     全文検索

より詳細な説明は、SDIC に附属の仕様書を参照して下さい。

SDIC 辞書の利用
----------

辞書ファイルを適当なディレクトリに用意し、ndic エージェントを設定して下さい。

dictd フォーマット
============

dictd フォーマット とは、DICT プロジェクト (http://www.dict.org) で配布されている辞書サーバ dictd で用いられている比較的単純な辞書形式です。 Lookup では ndic 及び ndict エージェントにより検索が行なえます。 (see ndic, see ndict)

dictd フォーマットの特徴
---------------

  * インデックスファイルと本文ファイルが分離。

  * プレーンテキストによる辞書内容の記述。

  * いくつかのフリー辞書が入手可能。

dictd フォーマットの概要
---------------

dictd 辞書は .index を拡張子とするインデックスファイルと、 .dict を拡張子とする本文ファイルからなり、それぞれ次のような内容になっています。

     file.index

     foo     A2      w
     bar     Bc      Ab
     ...

     file.dict

     foo

       Here is explanation of foo.

     bar

       Here is explanation of bar.

     ...

本文ファイルはこのように単なるプレーンテキストであり、インデックスファイルの各行にそれぞれのエントリの情報が並べられます。順に、最初のコラムが見出し語、二番目が本文の開始位置、三番目が本文の長さを表わします。各コラムはタブで区切られ、二番目、三番目の値は base64 でエンコードされています。

検索時はまずインデックスファイルから目的の見出し語が見付け出され、そうして得られた情報から効率的に本文が取り出されます。

より詳細な説明は、dictd のマニュアルページを参照して下さい。

dictd 辞書の利用
-----------

dictd 辞書は、ndic 及び ndict エージェントから検索することが可能です。 ndict エージェントを用いる方がより高速な検索が可能ですが、サーバの設定が必要なぶんいくらか手間が掛かります。dictd の設定については、 Setup DICT を参照して下さい。

ndic エージェントであれば設定は最小限で済みますが、ndic は最初にインデックスを全て読み込むため、比較的多くのメモリを必要とすることに注意して下さい。少なくとも利用するインデックスファイルよりも十分大きなメモリの余裕のあることが必要です。

ndic エージェントを用いる場合、インデックスファイルと本文ファイルの両方をそろえて、適当なディレクトリに置いて下さい。本文ファイルは dictd 配布物に含まれる dictzip コマンドで圧縮しておいても構いません。これは次のように実行します。

     % dictzip file.dict

cookie ファイル
===========

cookie ファイル とは、fortune プログラムなどで用いられる fortune cookie  (短かいジョークや格言などを集めたもので、UNIX では伝統的にログイン時にこれをランダムで表示するようになっている。) を集めたファイルです。Lookup では ndcookie エージェントにより利用することが出来ます。(see ndcookie)

cookie ファイルの特徴
--------------

  * fortune プログラムなどで利用されている。

  * 検索には向いていない。いずれかの文をランダムに取り出すのが普通。

cookie ファイルの概要
--------------

cookie ファイルは .lines を拡張子とする単一のファイルからなり、次のような内容になっています。

     Cookie file example
     ^@
     This is first sentence.^@
     This is second sentence.^@

ここで ^@ とあるのは ASCII コード 0 の文字です。ファイルの先頭から最初の ^@ までがコメントとなり、続く行から次の ^@ までが一つの cookie となっています。

cookie ファイルの利用
--------------

ファイルを適当なディレクトリに用意し、ndcookie の設定を行なって下さい。

各種 CD-ROM 辞書
============

日本で市販されている

電子ブック・EPWING 規約

[ この章はまだ整備途中です ]

NDTP 辞書サーバ
==========

NDTP とは、ネットワークで CD-ROM 辞書を共有するために作られた検索用プロトコルです。Lookup では ndtp エージェントにより NDTP サーバとやりとりすることが出来ます。(see ndtp)

NDTP の特徴
--------

  * 日本の市販 CD-ROM 辞書に根差した内容。

  * 良くも悪くも、いいかげんな設計。

  * 何度か拡張され、今では外字情報も扱えるようになっている。

NDTP の概要
--------

NDTP (Network Dictionary Transport Protocol) は dserver (ftp://ftp.pu-toyama.ac.jp/pub/misc/) という検索ソフトウェアの中で独自に定義されたもので、簡潔なコマンド体系を持つテキストベースのプロトコルです。次のような応答になります。

        % telnet localhost ndtp
        Trying 127.0.0.1...
        Connected to localhost.
        Escape character is '^]'.
     C> Akei
     S> $A
     C> t
     S> 1       国語辞典        KOKUGO  0       0       900
     S> 2       英和辞典        EIWA    0       0       900
     S> 3       和英辞典        WAEI    0       0       900
     S> $*
     C> L1
     S> $*
     C> Patest
     S> $0
     S> テスト
     S> 668c:73e
     S> $$
     C> S668c:73e
     S> $1
     S> テスト
     S> [名] 1. 試験....
     S> $$
     C> Q
        Connection closed by foreign host.
        %

NDTP サーバの設定
-----------

[ この節はまだ整備途中です ]

DICT 辞書サーバ
==========

DICT とは、RFC 2229 として定義されている辞書検索用プロトコルです。Lookup では ndict エージェントにより DICT サーバとやりとりすることが出来ます。(see ndict)

DICT の特徴
--------

  * RFC として明確に定義。

  * 文字コードは UTF-8(Unicode)。

DICT の概要
--------

        % telnet localhost dict
        Trying 127.0.0.1...
        Connected to localhost.
        Escape character is '^]'.
     S> 220 localhost dictd 1.4.8/rf <auth.mime> <27831.860032493@localhost>
     C> CLIENT ndict
     S> 250 ok
     C> SHOW DB
     S> 110 3 databases present
     S> jargon "Jargon File (4.0.0/24 July 1996)"
     S> foldoc "The Free On-line Dictionary of Computing (15Feb98)"
     S> vera "Virtual Entity of Relevant Acronyms (1.4a)"
     S> .
     S> 250 ok
     C> MATCH * exact "test"
     S> 152 1 matches found
     S> jargon "test"
     S> .
     S> 250 ok [d/m/c = 0/1/27; 0.000r 0.000u 0.000s]
     C> DEFINE jargon "test"
     S> 150 1 definitions retrieved
     S> 151 "test" jargon "Jargon File (4.0.0/24 July 1996)"
     S> test /n./  1. Real users bashing on a prototype long enough to
     S>    get thoroughly acquainted with it, with careful monitoring and
     S>    followup of the results.  2. Some bored random user trying a couple
     S>    of the simpler features with a developer looking over his or her
     S>    shoulder, ready to pounce on mistakes.  Judging by the quality of
     S>    most software, the second definition is far more prevalent.  See
     S>    also {demo}.
     S>
     S>
     S> .
     S> 250 ok [d/m/c = 1/0/11; 0.033r 0.000u 0.009s]
     C> QUIT
     S> 221 bye [d/m/c = 0/0/0; 179.328r 0.000u 0.011s]
        Connection closed by foreign host.
        %

DICT サーバの設定
-----------

[ この節はまだ整備途中です ]

検索エージェント一覧
**********

この章では、Lookup で利用できる検索エージェントについて、それを利用するために行なわなければならない準備や設定項目について詳細に説明します。

ndic
====

`ndic' は、主にフリーに配布されている辞書から、手軽に検索を行なうことを目的とした検索エージェントです。辞書以外に他に用意すべきものもないので、とりあえず Lookup を試してみるにはちょうどいいでしょう。

ndic で使える辞書は ndict エージェントでも利用可能です。性能を重視する場合には、そちらを参照してみて下さい。(see ndict)

ndic の準備
--------

ndic では現在、dictd-1.4.x 用に用意された辞書から検索を行なうことが可能となっています。いくつかのフリーな辞書が、Lookup のホームページから入手出来ます。

Lookup dictionary collection
     http://openlab.ring.gr.jp/lookup/dicts/

辞書(*.index と *.dict)は適当なディレクトリにインストールして下さい。圧縮(dictzip)しておいても構いません。必要な準備はこれだけです。

ndic の設定
--------

ndic は次のように設定します。

     (ndic DIRECTORY)

DIRECTORY には辞書のあるディレクトリを指定します。オプションその他の特別な設定はありません。

例えば次のようになります。

     (setq lookup-search-agents
           '((ndic "/usr/lib/dict")))

ndic の辞書
--------

指定したディレクトリに含まれるインデックスファイル(*.index)が辞書として認識されます。その拡張子を取り除いたファイル名が辞書名となります。辞書のタイトルは自動的に認識されます。

全文検索を除く、全ての検索方式が有効です。(see Search Methods)

ndic のカスタマイズ
------------

辞書が dictzip コマンドにより圧縮してある場合、その展開に dictzip を呼び出します。変数 ndic-dictzip-program により、そのプログラム名を指定します。デフォルトでは "dictzip" になっています。

ndeb
====

`ndeb' は、電子ブックや EPWING 規約に準拠した CD-ROM 書籍の個人利用に向いた検索エージェントです。eblook という外部コマンドを用いることで、特別な設定の必要なしに手元の CD-ROM 辞書が利用出来ます。

ndeb の準備
--------

ndeb は外部コマンドとして eblook を使用します。eblook とは、電子ブックや EPWING 規約に従った CD-ROM 辞書をアクセスするための簡易検索コマンドです。

ndeb は外部コマンドとして eblook を利用しています。eblook は、電子ブックや EPWING といった規約に従った CD-ROM 書籍をアクセスするためのツールです。

CD-ROM の準備
..........

利用出来る CD-ROM は、一般の書店で購入することが出来ます。大体、数千円から数万円程度で売っています。これから購入する場合には、それが EPWING という規格に従っていることを確認して下さい。パッケージの裏に EPWING というマークが付いているはずです。

CD-ROM は適当なディレクトリにマウントしておいて下さい。ディスクに余裕がある場合には、ハードディスクにコピーしておいても構いません。ただし、コピーが許されるかどうかは著作者に権利があるので、辞書の説明書を注意して読んで下さい。

辞書は eblook に附属の圧縮コマンドで圧縮しておくことも可能です。大体、 1/2 〜 1/3 のサイズにまで縮小されます。

eblook
......

eblook は次のところから入手可能です。UNIX 版と、MS Windows で利用出来るようにしたバイナリの情報が得られます。

eblook
     http://openlab.ring.gr.jp/lookup/eblook/

インストールは適当なディレクトリに行なって下さい。

外字表示の準備
.......

Lookup は CD-ROM 書籍に含まれる外字の表示をサポートしています。外字表示を行なうための設定については、Setup Gaiji を参照して下さい。

外字を表示したくない、もしくはそれが不可能な場合には、Appendix と呼ばれる外字の置き換えテーブルを利用することで、外字を通常の文字列で置き換えることも可能です。市販の辞書に対応したいくつかの Appendix が、EB ライブラリの Web ページで公開されています。

Appendix
     http://www.sra.co.jp/people/m-kasahr/eb/

あるいは利用する辞書の補助パッケージがある場合には、そこで独自に外字の置き換えテーブルが用意されている場合があります。目的の補助パッケージがないか確認してみて下さい。(see Setup Package)

ndeb の設定
--------

ndeb は、次のように設定します。

     (ndeb DIRECTORY)

DIRECTORY には辞書のあるディレクトリを指定します。

次のエージェント・オプションが利用できます。

appendix
     eblook が利用する Appendix のあるディレクトリを指定します(see Appendix (eblook))。省略された場合には、辞書オプション gaiji-table に従って外字が置き換えられます。 (see Gaiji Table)

coding
     eblook に対する process-coding-system。デフォルトは euc-jp。

次の辞書オプションが利用できます。

stop-code
     辞書の出力の終了コード。一部の辞書では、これを設定しないと表示がおかしくなることがある。FAQ を参照。

例えば次のようになります。

     (setq lookup-search-agents
           '((ndeb "/cdrom" :appendix "/usr/local/share/eb/appendix")))

ndeb の辞書
--------

CD-ROM 書籍に含まれる全ての辞書が有効となります。辞書の名前とタイトルは eblook から与えられます。

検索方式は「完全一致検索」「前方一致検索」「後方一致検索」です。 (see Search Methods)

ndeb はメニューコマンドに対応しています。(see Specify Dictionary)

ndeb のカスタマイズ
------------

変数 ndeb-program-name により、eblook のコマンド名を指定します。デフォルトでは "eblook" となっています。

変数 ndeb-prompt-string により、eblook のプロンプトを指定します。デフォルトでは "eblook> " となっています。

ndtp
====

`ndtp' は、主にローカル・ネットワークで共有された CD-ROM 辞書から検索を行なうことを目的とした検索エージェントです。NDTP(Network Dictionary Transport Protocol)のバージョン 2 に対応したクライアントとなっています。

辞書を共有する必要のない場合には、より手軽に設定できるエージェントとして ndeb が利用可能です。(see ndeb)

ndtp の準備
--------

ndtp を利用するには NDTP サーバが必要です。自分のネットワークにサーバが用意されてない場合には、自分で準備する必要があります。

NDTP server
...........

NDTP サーバとして、dserver と NDTPD の二つが入手可能です。どちらも電子ブックや EPWING に準拠した CD-ROM 書籍を扱うためのサーバです。

`dserver' は、以前から使われている辞書サーバで、NDTP の元となったプログラムです。次のところから入手可能です。

dserver
     ftp://ftp.pu-toyama.ac.jp/pub/misc/

`NDTPD' は、新しく作られている辞書サーバで、dserver を置き換えられるよう開発されています。次のところから入手可能です。

NDTPD
     http://www.sra.co.jp/people/m-kasahr/ndtpd/

サーバの設定については、それぞれのプログラムに附属のドキュメントを参照して下さい。

外字表示の準備
.......

NDTP サーバとして NDTPD バージョン 2.0 以降を用いると、辞書の外字情報を扱えるようになります。外字表示のための設定については、Setup Gaiji を参照して下さい。

ndtp の設定
--------

ndtp は、次のように設定します。

     (ndtp SERVER)

SERVER には NDTP サーバのホスト名を指定します。

次のエージェント・オプションが利用できます。

service
     NDTP のサービス名。

port
     NDTP のポート番号。サービス名とポート番号の両方を省略した場合は、サービス名として "ndtp" が利用されます。

account
     サーバへのアカウント。これはログに残るという以上の意味はない。デフォルトは "<user>@<host>")。

coding
     サーバに対する process-coding-system。デフォルトは euc-jp。

例えば次のようになります。

     (setq lookup-search-agents
           '((ndtp "dserver" :port 2010 :account "kei@bamboo")))

ndtp の辞書
--------

サーバが扱っている全ての辞書が有効となります。辞書の名前とタイトルはサーバから与えられます。

検索方式は「完全一致検索」「前方一致検索」「後方一致検索」です。 (see Search Methods)

ndict
=====

`ndict' は、主にインターネットで公開されている辞書サーバから検索を行なうことを目的とした検索エージェントです。これは DICT プロトコル(RFC 2229)に対応したクライアントとなっています。

DICT サーバの一つである dictd 向けにフリーに配布されている辞書は、ndic エージェントで検索することも可能です。手軽に検索を試してみたい方は、そちらも参照してみて下さい。(see ndic)

ndict の準備
---------

ndict は DICT プロトコルに対応した辞書サーバにアクセスします。サーバに接続できる環境であれば、特別な準備は何も必要ありません。自分でサーバを導入する場合には、DICT プロジェクトから dictd が入手可能です。

DICT project
     http://www.dict.org

附属のドキュメントに従って適切に辞書、及びサーバを導入して下さい。dictd で利用できるいくつかの辞書は、上記ページ以外にも Lookup のホームページからも入手可能です。

Lookup dictionary collection
     http://openlab.ring.gr.jp/lookup/dicts/

ndict の設定
---------

ndict は、次のように設定します。

     (ndict SERVER)

SERVER には DICT サーバのホスト名を指定します。

次のエージェント・オプションが利用できます。

service
     DICT のサービス名。

port
     DICT のポート番号。サービス名とポート番号の両方を省略した場合は、サービス名として変数 ndict-service-name の値("dict")が利用されます。

coding
     サーバに対する process-coding-system。デフォルトは euc-jp-dos。

auth
     サーバへの authentication(認証)を指定する。ユーザ名とパスワードの組(cons)によって表わす。

methods
     サーバが対応している検索方式のリストを指定する。デフォルトでは、サーバのソフトウェアを見て検索方式を予測している。というのも、 DICT プロトコルでは検索方式はサーバが自由に設けることが出来るので、プログラムからは完全な自動判定が出来ない。従ってユーザが対応を指定する必要がある。dictd-1.4.x を普通に用いる場合には、これを指定する必要はない。次の method-table も参照。

method-table
     Lookup の検索方式とサーバの strategy との対応関係を alist で指定する。例えばサーバが dictd-1.4.x である場合、これは自動的に

          ((keyword . "exact") (prefix . "prefix") (suffix . "suffix")
           (substring . "substring") (exact . "exact") (regexp . "re"))

     のように設定される。上の methods も同時に指定する必要がある。

例えば次のようになります。

     (setq lookup-search-agents
           '((ndict "dict.org" :auth ("kei" . "password"))))

ndict の辞書
---------

サーバが扱っている全ての辞書が有効となります。辞書の名前とタイトルはサーバから与えられます。(しかし、サーバから与えられるタイトルはかなり長い場合があるので、自分で再設定した方がよいかもしれません (see Dictionary Options))

検索方式は相手のサーバに依存します。サーバが dictd-1.4.x をそのまま用いている場合には、「全文検索」以外の全ての検索が有効となります。でなければ、「キーワード検索」と「前方一致検索」のみ有効となります。 (see Search Methods)

ndnmz
=====

`ndnmz' は、大量の文書から効率的に全文検索を行なうことを目的とした検索エージェントです。外部コマンドとして全文検索システム Namazu を用いており、メーリングリストやマニュアル等の文書をあらかじめインデックス化しておくことで、高速に検索を行なうことが出来ます。

ndnmz の準備
---------

ndnmz はバージョン 1.2.0 以降の Namazu に対応しています。それにより正規表現による検索や、複数インデックスからの検索が可能となっています。Namazu は次のところから入手出来ます。

Namazu
     http://openlab.ring.gr.jp/namazu/

附属のドキュメントに従ってインストールを行ない、必要なインデックスを作成して下さい。

ndnmz の設定
---------

ndnmz は、次のように設定します。

     (ndnmz DIRECTORY)

DIRECTORY には Namazu の index のあるディレクトリを指定します。

次のエージェント・オプションが利用できます。

type
     インデックスした文書のタイプ。HTML ファイルの場合は html、メールやニュースの場合には mail、プレーンテキストの場合には plain、それらを自動判定する場合には auto とする。この情報は出力の整形処理に用いられる。デフォルトは auto。

recursive
     non-nil を指定すると、ディレクトリを再帰的に辿って全ての末端ディレクトリを index として扱う。デフォルトは nil。

例えば次のようになります。

     (setq lookup-search-agents
           '((ndnmz "~/index" (type . mail) (recursive . t))))

ndnmz の辞書
---------

有効な index の数だけ辞書が生成されます。辞書名はトップディレクトリ(設定した DIRECTORY)からの相対パスとなります。タイトルはパス名を除いたディレクトリ名となります。

現在のところ、ndnmz では検索方式の指定は無視されます。入力された文字列はそのまま namazu コマンドに受け渡されます。

ndnmz はオープンコマンドに対応しています。文書のタイプが html の場合、browse-url によりそれがオープンされます。(see See Contents)

ndnmz のカスタマイズ
-------------

変数 ndnmz-program-name により、Namazu のコマンド名を指定します。デフォルトでは "namazu" となっています。

ndkks
=====

`ndkks' は、検索ではなく日本語の読みを調べるための検索エージェントです。漢字の含まれる検索語を指定した場合、漢字かな変換プログラム KAKASI を用いてその読みを調べて表示します。

ndkks の準備
---------

KAKASI は漢字かな変換プログラムで、次のところから kakasi-2.2.5.tar.gz(本体ファイル)と kakasidict.940620.gz(辞書ファイル)の名称で入手可能です。

KAKASI
     ftp://sunsite.sut.ac.jp/pub/asia-info/japanese-src/packages/

新しくインストールする場合には、更に次のところから得られる情報を元にパッチを当てておいた方がいいでしょう。

KAKASI patch
     http://www.kusastro.kyoto-u.ac.jp/~baba/wais/index.html

ndkks の設定
---------

ndkks は、次のように設定します。

     (ndkks)

つまり、それを lookup-search-agents のリストに加えるだけです。オプションその他の特別な設定はありません。

ndkks の辞書
---------

ndkks 自体が一つの辞書となります。辞書名は変数 ndkks-program-name で指定される KAKASI プログラムの名前です。タイトルは変数 ndkks-dictionary-title により与えられます。

キーワード検索において、漢字の含まれる検索語が指定されたとき出力されます。

ndkks のカスタマイズ
-------------

変数 ndkks-program-name により、KAKASI のコマンド名を指定します。デフォルトでは "kakasi" となっています。

変数 ndkks-dictionary-title により、ndkks 辞書のタイトルを指定します。デフォルトでは "漢字かな辞典" となっています。

変数 ndkks-content-format により、出力内容のフォーマットをリストで指定します。リストの各要素には次のものが利用できます。

t
     検索語が挿入される。

文字列
     それがそのまま挿入される。

文字列のリスト
     それをオプション引数として KAKASI を呼び出し、その結果が挿入される。

ndspell
=======

`ndspell' は、Lookup でスペルチェックを行なうための検索エージェントです。他のエージェントで独自にスペルチェックを行なわずとも、ndspell がそれを処理して自動的に再検索を行なってくれます。また、スペルの検索も行なえます。

ndspell の準備
-----------

ndspell は外部コマンドとして Ispell と grep を利用しています。Ispell は対話型のスペルチェックコマンドで、grep は言わずと知れた UNIX ツールです。どちらも GNU の FTP サイトなどから入手可能です。

GNU ftp directory
     ftp://ftp.gnu.org/pub/GNU/

ndspell の設定
-----------

ndspell は、次のように設定します。

     (ndspell)

つまり、それを lookup-search-agents のリストに加えるだけです。オプションその他の特別な設定はありません。

ndspell の辞書
-----------

ndspell 自体が一つの辞書となります。辞書名は変数 ndspell-ispell-program で指定される Ispell コマンドの名前です。タイトルは変数 ndspell-dictionary-title により与えられます。

次の検索法が有効となります。

キーワード検索
     検索語をスペルチェックし、誤りがある場合には候補をエントリとして生成。

前方一致検索
後方一致検索
部分一致検索
正規表現検索
     パターンにマッチする単語を検索し、エントリを生成。

どの場合も、生成されたエントリは普通に Entry バッファに出力され、それを選択して内容を表示しようとした段階で再検索が行なわれます。実際に試してみて下さい。

ndspell のカスタマイズ
---------------

変数 ndspell-ispell-program により、Ispell のコマンド名を指定します。デフォルトでは "ispell" となっています。

変数 ndspell-grep-program により、grep のコマンド名を指定します。デフォルトでは "grep" となっています。

変数 ndspell-words-dictionary により、スペルを検索する際の単語辞書を指定します。デフォルトでは /usr/share/dict/words となっています。

変数 ndspell-dictionary-title により、ndspell 辞書のタイトルを指定します。デフォルトでは "Spell Checker" となっています。

変数 ndspell-search-dictionaries により、再検索の対象とする辞書をその辞書ID のリストとして指定します。デフォルトでは t となっており、この場合、選択されている全ての辞書から再検索が行なわれます。

ndcookie
========

`ndcookie' は、cookie ファイル(引用集)から検索を行なうための検索エージェントです。おまけみたいなもんです。

ndcookie の準備
------------

利用出来るファイルの例としては、Emacs に附属の Zippy ファイルがあります。

Zippy
     $(EMACS)/etc/yow.lines

ndcookie の設定
------------

ndcookie は、次のように設定します。

     (ndcookie FILE)

FILE には、利用する cookie ファイルを指定します。ファイルが相対パスで指定された場合、変数 data-directory からの相対パスとして扱われます。

例えば次のようになります。

     (setq lookup-search-agents
           '((ndcookie "yow.lines")))

ndcookie の辞書
------------

指定した cookie ファイルが一つの辞書となります。辞書名はファイル名に一致します。タイトルは設定されません。

全ての検索方式が有効となります。(see Search Methods)

各モードについての詳細
***********

この章では、Lookup の各モードでの全ての設定・操作について説明します。

Select モード
==========

Select モードでは、利用可能な辞書の一覧を表示し、実際に利用する辞書の選択状態を切り替えることが出来ます。また、それぞれの辞書に固有の情報を得ることも出来ます。

Select モードの詳細
-------------

最初に M-x lookup を実行するか、検索実行後に Entry バッファで S を押すと、辞書一覧バッファが表示され、Select モード (lookup-select-mode)に入ります。キーマップは lookup-select-mode-map で、最初に lookup-select-mode-hook が呼ばれます。

一覧の %、Identifier、Title とあるコラムには、それぞれ辞書の選択状態、辞書ID、辞書のタイトルが表示されます。 Quick Startup を参照して下さい。

Methods とあるコラムには、辞書が対応している検索方式が示されます。ここに並んでいる記号の列は、一文字がそれぞれ一つの検索方式を表わしています。各記号と検索方式の対応については、Search Methods を参照して下さい。

このバッファでの具体的な操作については、 Specify Dictionary を参照して下さい。

Select モードのコマンド一覧
-----------------

SPC
n
M-x lookup-select-next-line
     次の行に進む。

p
M-x lookup-select-previous-line
     前の行に戻る。

m
M-x lookup-select-do-select
     ポイント行の辞書を選択する。

u
M-x lookup-select-do-unselect
     ポイント行の辞書を非選択にする。

M-x lookup-select-toggle-selected
     ポイント行の辞書の選択状態をトグルする。

a
M-x lookup-select-do-select-all
     全ての辞書を選択する。

RET
M-x lookup-select-do-select-only
     ポイント行の辞書のみを選択する。

d
M-x lookup-select-mark-disable
     ポイント行の辞書に無効化のマークを付ける。

x
M-x lookup-select-do-execute
     無効化を実行する。

M
M-x lookup-select-menu
     辞書がメニューに対応している場合、それを参照する。

f
M-x lookup-select-search-pattern
     選択された辞書から検索を行なう。

/
M-x lookup-select-text-search
     ポイント行の辞書から全文検索を行なう。

g
M-x lookup-select-update
     現在の検索モジュールを初期化し直す。ただし、設定ファイルで設定を変更した場合、それを反映させるには M-x lookup-restart を用いる必要がある。

q
M-x lookup-quit
     辞書選択バッファを抜ける。

Q
M-x lookup-exit
     Lookup を終了する。

R
M-x lookup-restart
     Lookup を再起動する。

?
M-x lookup-select-help
     Select モードの簡易ヘルプを表示する。

Entry モード
=========

Entry モードでは、検索の結果見付かったエントリを一覧し、それらを順に参照していくことが出来ます。

Entry モードの詳細
------------

各種の検索コマンド(see Search Commands)を実行すると、Entry バッファが表示され、Entry モード(lookup-entry-mode)に入ります。キーマップは lookup-entry-mode-map で、最初に lookup-entry-mode-hook が呼ばれます。

バッファにはエントリの一覧が表示され、辞書のタイトルとエントリの見出しが並びます。モードラインは次のようになります。

     ----------------------------------------------------------------
     -E:%*  Lookup: *Entry* {*:word} [2]      (Entry Abbrev)--L1--C20
     ----------------------------------------------------------------

ここでブレース(大括弧)に挟まれた部分は、どのような検索が行なわれたかを示しています。コロン(:)の前の一文字は検索方式を表わしており、その後の word となっているのが検索語です。検索方式については Search Methods を参照して下さい。後に続くブラケット(角括弧)と数字は、見付かったエントリの数です。

このバッファでの具体的な操作については、 See Result 参照して下さい。

Entry モードのコマンド一覧
----------------

M-x lookup-entry-display-content
     ポイント行のエントリの本文を表示する。 Overview モードになっている場合にはそれを解除し、Content バッファをオープンする。エントリがリファレンスの場合には、それを参照する。

mouse-2

lookup-entry-mouse-follow
     マウスでクリックしたエントリの本文を表示する。

SPC
M-x lookup-entry-next-page
     エントリ本文の表示を一ページ進める。バッファの終わりまで達したら、次のエントリに移動する。

DEL
M-x lookup-entry-previous-page
     エントリ本文の表示を一ページ戻す。バッファの始めまで達したら、前のエントリに移動する。

RET
M-x lookup-entry-scroll-up-content
     エントリ本文をプレフィスクの行数だけスクロール・アップする。

M-x lookup-entry-scroll-down-content
     エントリ本文をプレフィスクの行数だけスクロール・ダウンする。

<
M-x lookup-entry-beginning-of-content
     エントリ本文の表示を先頭まで戻す。

>
M-x lookup-entry-end-of-content
     エントリ本文の表示を末尾まで進める。

n
M-x lookup-entry-next-entry
     次のエントリを表示する。プレフィクスの数だけ進む。

p
M-x lookup-entry-previous-entry
     前のエントリを表示する。プレフィクスの数だけ戻る。

M-n
M-x lookup-entry-history-next
     検索履歴を次に進む。プレフィスクの数だけ進む。

M-p
M-x lookup-entry-history-previous
     検索履歴を前に戻る。プレフィスクの数だけ戻る。

i
M-x lookup-entry-info
     エントリの情報を出力する。

o
M-x lookup-entry-open
     エントリ本文を画面一杯に表示する。

O
M-x lookup-entry-open-other
     エントリ本文を別プログラムで表示する。

v
M-x lookup-entry-overview-mode
     Overview モードに入る。 Cotent バッファがクローズされ、n と p が単にポイント移動だけを行なうようになる。

t
M-x lookup-entry-toggle-format
     エントリ本文の整形処理をトグルする。

s
M-x lookup-entry-isearch-content
     Content バッファで isearch-forward を実行する。

w
M-x lookup-entry-cite-content
     エントリ本文をキルリングに保存する。変数 lookup-cite-style もしくは辞書オプション cite-style により引用のスタイルを指定可能。M-x lookup-content-cite-region も参照。

f
M-x lookup-entry-search-pattern
     ミニバッファから検索式を入力して検索する。

L
M-x lookup-entry-list-references
     エントリ本文に含まれるリファレンスを一覧する。

S
M-x lookup-select-dictionary
     辞書選択バッファに切り換える。

r
M-x lookup-entry-start-window
     検索を開始したウィンドウに移動する。

h
M-x lookup-entry-content-window
     Content バッファに移動する。

g
M-x lookup-entry-update
     今回と同じ検索語で、エントリを再検索する。

M-x lookup-entry-update-content
     エントリ本文を再表示する。整形処理も全てやり直される。

q
M-x lookup-quit
     Entry バッファを抜ける。

Q
M-x lookup-exit
     Lookup を終了する。

R
M-x lookup-restart
     Lookup を再起動する。

?
M-x lookup-entry-help
     Entry モードの簡易ヘルプを表示する。

Content モード
===========

Content モードでは、エントリの本文を表示し、内容を参照することが出来ます。

Content モードの詳細
--------------

Entry バッファで本文を表示するよう操作すると Content バッファが現れ、 Content モード(lookup-content-mode)に入ります。キーマップは lookup-content-mode-map で、最初に lookup-content-mode-hook が呼ばれます。

バッファにはエントリの本文が表示され、見出しがモードラインに示されます。

このバッファに対する主な操作は Entry バッファから行なうことが出来るので、直接このモードを利用することはあまりありません。具体的な操作については、 See Result 参照して下さい。

Content モードのコマンド一覧
------------------

SPC
M-x scroll-up
     バッファをスクロール・アップする。

DEL
M-x scroll-down
     バッファをスクロール・ダウンする。

<
M-x beginning-of-buffer
     バッファの先頭に移動する。

>
M-x end-of-buffer
     バッファの末尾に移動する。

TAB
M-x lookup-content-next-link
     次のリンクに移動する。

RET
M-x lookup-content-follow-link
     ポイント位置のリンクを参照する。

mouse-2
lookup-content-mouse-follow
     マウスでクリックしたリンクを参照する。

t
M-x lookup-content-toggle-format
     本文の整形処理をトグルする。

w
M-x lookup-content-cite-region
     リージョンの内容をキルリングに保存する。その際、変数 lookup-cite-header または辞書オプション cite-header により引用時のヘッダを、変数 lookup-cite-prefix または辞書オプション cite-prefix により引用時のプレフィクスを指定することが出来る。 (現在、cite-style には未対応)

h
M-x lookup-content-entry-window
     Entry バッファに移動する。

g
M-x lookup-content-update
     キャッシュを用いずに本文を読み直す。

q
M-x lookup-content-leave
     Content バッファを抜ける。

?
M-x lookup-content-help
     Content モードの簡易ヘルプを表示する。

最新情報を手に入れる
**********

Lookup は Ring Server のオープンラボで開発されています。次のところから入手可能です。

Lookup
     http://openlab.ring.gr.jp/lookup/

Lookup に関する情報交換は、専用のメーリングリストにて行われています。参加を希望する方は、lookup-ja-request@ring.gr.jp 宛てに、本文に subscribe と書いたメールを送って下さい。

Lookup は、lookup-ja@ring.gr.jp メイリングリストの有志 (lookup-ja@ring.gr.jp)が管理しています。Lookup に関する問い合わせはこちらまでお願いします。

トラブルシューティング
***********

いくつかのトラブルへの対処法が、Lookup 配布物に含まれるファイル FAQ にまとめてあるので、そちらを参照して下さい。それでも不明な場合は、メーリングリストなどで質問して下さい。

用語集
***

辞書 (dictionary)
     検索の元となる情報源。Lookup では CD-ROM 書籍や辞書サーバなどが使える。

CD-ROM 書籍 (CD-ROM book)
     電子ブック(EB/EBG/EBXA) や EPWING 規約に準拠した電子書籍。

辞書サーバ (dictionary server)
     NDTP や DICT プロトコルなどに対応した、用語検索の機能を提供するサーバ。

NDTP (Network Dictionary Transport Protocol)
     CD-ROM 書籍をネットワークで利用するためのプロトコル。dserver というソフトウェアが独自に定義したもの。

DICT プロトコル
     ネットワークで検索を行なうためのプロトコル。RFC 2229。

検索エージェント (search agent)
     辞書を実際にアクセスするための内部プログラム。

検索モジュール (search module)
     一回の検索の対象となる辞書のまとまり。

検索 (search)
     Lookup では、辞書から目的のエントリを調べ出すこと。メニューから目的のエントリまでを順に辿っていく「メニュー検索」や、検索語を指定してエントリを見付け出す「文字列検索」がある。

メニュー検索 (menu)
     辞書にあらかじめ用意されたメニューを辿って、目的のエントリを見付け出すこと。

文字列検索 (search string)
     検索語を用いた検索。ミニバッファから検索式を入力する場合を特に「パターン検索」と呼ぶ。リージョンなどを指定した場合には「単語検索」が行なわれる。

パターン検索 (search pattern)
     ミニバッファから検索式を入力して行なう検索のこと。パターンの指定方法によって、次の「単語検索」「完全一致検索」「前方一致検索」「後方一致検索」「中間一致検索」「正規表現検索」「キーワード検索」「全文検索」を切り換えることが出来る。

単語検索 (search word)
     デフォルトの検索方法。「完全一致検索」や「キーワード検索」などを間接的に呼び出す。

前方一致検索 (search prefix)
     指定した検索語が見出し語の前方と一致するものを検索。

後方一致検索 (search suffix)
     指定した検索語が見出し語の後方と一致するものを検索。

中間一致検索 (search substring)
     指定した検索語が見出し語の一部に含まれるものを検索。

完全一致検索 (search exactly)
     指定した検索語が見出し語と完全に一致するものを検索。

正規表現検索 (search regexp)
     正規表現を検索語として見出し語と一致するものを検索。

キーワード検索 (search keyword)
     辞書に登録されキーワードと一致するエントリを検索。

全文検索 (text search)
     指定した検索語と一致するものを辞書の全文から検索。

エントリ (entry)
     辞書で説明されている一つ一つの項目のこと。

見出し (heading)
     エントリの内容を示す表題。

見出し語 (headword)
     エントリの検索用の語句。

キーワード (keyword)
     エントリに関連付けられた追加の語句。

本文 (contents)
     エントリの説明内容。

リファレンス (reference)
     一つのエントリから関連付けられた別のエントリ。

リンク (link)
     リファレンスを呼び出すために設けられた文字領域。

grep
     ファイルから特定の文字列やパターンを含む行を抜き出す UNIX のツール。