			 -*-indented-text-*-

0. はじめに

  diclookup-mule は、電子ブック版辞書検索システム diclookup に Mule 用
  の変更を施したものです。diclookup と比較して、以下のような特徴を持っ
  ています。

	○ メニュー検索・参照検索が可能。
	○ xv を使った図版データの表示(電子ブック版広辞苑第三版ではで
           きません)。
	○ Mule の多国語機能を利用した、発音記号などの外字の表示。
	○ multipul frame, face など、Emacs 19 の機能を利用した表示。
	○ マウス対応。
        ○ outline mode を用いた例文表示の ON/OFF。
	○ ヒストリー機能。
	○ いくつかのバグフィックス。

  0.1 動作環境

  まず、dserver, ndtpd など、ndtp を用いる辞書サーバが必要です。

  Emacs, Mule については以下のバージョンのものを動作対象としています。

    グループ1) Mule 2.2, Mule 2.3 (Emacs 19.28 ベース)
    グループ2) Emacs 19.29 以降の Emacs 19 をベースにした Mule 2.3
    グループ3) Emacs 20.x (x ≧ 2),  Emacs 21.x (x ≧ 1)
    (Mule 1.x, XEmacs では動きません。)

  上記のそれぞれのグループについて、別々にバイトコンパイルしたものを使っ
  て下さい。1)でバイトコンパイルしたものは 2)でも動くと思われますが、
  それ以外に関しては基本的には同じグループでバイトコンパイルしたもので
  ないと動きません。

  Emacs 20.2 で和英辞典などを使う際に仮名が入力できない場合は、
  read-multilingual-string の定義を以下のように変えて下さい。
  (mule-jp ML, X-Seqno 6642 より)

(defun read-multilingual-string (prompt &optional initial-input input-method)
  "Read a multilingual string from minibuffer, prompting with string PROMPT.
The input method selected last time is activated in minibuffer.
If optional second arg INITIAL-INPUT is non-nil, insert it in the minibuffer
initially.
Optional 3rd argument INPUT-METHOD specifies the input method
to be activated instead of the one selected last time.  It is a symbol
or a string."
  (setq input-method
	(or input-method
	    current-input-method
	    default-input-method
	    (read-input-method-name "Input method: " nil t)))
  (if (and input-method (symbolp input-method))
      (setq input-method (symbol-name input-method)))
  (let ((previous-input-method current-input-method))
    (unwind-protect
	(progn
	  (activate-input-method input-method)
	  (read-string prompt initial-input nil nil t))
      (if previous-input-method
	  (activate-input-method previous-input-method)
	(inactivate-input-method)))))

1. インストールの仕方

  1.1 dserver, ndtpd が動いているホスト名を指定。

  変数 dserver-server-list を .emacs, site-init.el, default.el のいず
  れかで次のように設定します。

	(setq dserver-server-list '("dserver が動いているホスト" ...))

  あるいは diclookup-mule.el の (defvar dserver-server-list ...) の部
  分を直接書き換えます。

  1.2 使用する辞書の指定。

  1.2.1 研究社英和・和英中辞典と広辞苑を指定する場合。
  (注意: この方法は従来のバージョンとの互換性のために残してあるものです。
   できるだけ 1.2.2 の方法を用いてください)

  従来のバージョンと同様、必要であれば od-chujiten-flag を設定します。
  研究社英和・和英中辞典と広辞苑が指定されます。もし御利用の英和・和英
  中辞典が eiwa と waei に分かれておらず、chujiten という名前になって
  いる場合は、

	(setq od-chujiten-flag t)

  として下さい。eiwa と waei に分かれている場合は od-dictfile-list,
  od-chujiten-flag ともに設定しないで下さい。

  1.2.2 辞書依存ファイルを直接指定する場合。

  dserver-server-list の場合と同様に、 od-dictfile-list を設定します。
  使用する辞書に対応する辞書依存ファイルの名前(ただし、.el はつけない)
  をリストの形で列挙して下さい。

	例: (setq od-dictfile-list '("od-kojien"))

  1.3 バイトコンパイル  

  Makefile 中の変数を適当に調整して make, make install します。

	例: make EMACS=mule2
            make install LISPDIR=/usr/GNU/lib/mule/site-lisp 

  このとき sirup もインストールされます。sirup については README.sirup
  を参照してください。

2. 使い方

  .emacs での設定の仕方、起動の仕方は diclookup-mule.el の最初のコメン
  ト部分を参考にして下さい。起動後、"?" で簡単なヘルプが出ます。

3. バグレポートについて

  バグレポートは、Maintainer の山本光晴<mituharu@math.s.chiba-u.ac.jp> 
  までお送り下さい。ただし、当方で使用していない辞書に関してはこちらで
  も分かりかねる点がありますので、デバッグのお手伝いをしていただくこと
  になるかもしれません。あらかじめ御了承願います。

4. 配布元

  最新のバージョンは、以下の所から入手できます。

    <URL:ftp://ftp.math.s.chiba-u.ac.jp/tools/diclookup-mule/>

  また、ベータバージョンが以下の所にある場合もあります。

    <URL:ftp://ftp.math.s.chiba-u.ac.jp/tools/diclookup-mule/beta/>

5. 今後の予定

  次のような機構をサポートする予定です(が、いつになることやら…)。

  ・ドラッグ+αによる検索

    Emacs 20 では(transient-mark-mode でなくても)マウスでテキストをド
    ラッグすると、次のイベントまでドラッグした部分が反転したままになり、
    DELETE キーでその部分を消去できます。ここで DELETE キーのかわりに
    何か別のキーを押したときにその単語を検索するというインターフェース
    が考えられます。当初 advice.el を用いて delete-region に overload 
    させれば、簡単にできてしかも Emacs のバージョンアップによる変更に
    も強いと思っていたのですが、関数 delete-region は直接バイトコード
    に割り当てられているのでこの方法ではうまくいきません。関数 
    mouse-show-mark を直接書き換えてしまうという手もあるのですが、ちょっ
    と格好悪いかも…。

  ・辞書名のエイリアス。

  ・グローバルなヒストリー。
    英和と和英を頻繁に切替えて使うようなことは良くあると思うのですが、
    その場合はヒストリーが辞書ごとに分かれていない方が便利だと思われま
    す。

  ・横幅のカスタマイズ、動的な変更。(19.29 以降?)

6. 謝辞

  バグレポートを送っていただいた皆さん、特に chujiten 対応や様々な付加
  機能についてデバッグにつき合っていただいた片山敏夫さんと東工大の柳沢
  さん、dserver ML の皆さんに感謝します。

					山本 光晴
			      千葉大学理学部数学・情報数理学科
				mituharu@math.s.chiba-u.ac.jp
