英辞郎第四版を Emacs で使う

今日,会社の帰り,虎ノ門の書店で『英辞郎第四版』(アルク) を購入した。英辞郎は,EDP というプロジェクトによって育てられた英和・和英電子辞書である。書籍の帯には「166万項目を収録!」とある。大手出版社が学者チームを組織し学問的編集方針に則って作り上げる通常の辞書に比べると,英辞郎はインターネットにおいて草の根的に成長した電子辞書であり,怪しい語釈・訳語も散見されるという。それでも,様々な分野のプロに支持され,活用され,鍛えられ,成長し続けているツールである。『英辞郎第四版』はその活用本であるが,当然ながら,英和・和英辞書と Windows / Mac OS X 用検索アプリケーションを収録した CD を添付している。

私の文房具である多言語エディタ GNU Emacs 22 で英辞郎英和・和英辞書を使えるようにした。『英辞郎第四版』は Windows と Mac での辞書検索ブラウザの活用方法を紹介している。UNIX 環境でも,フリーソフト sdic, sufary を利用すれば,設置に手間暇を要するという欠点があるにせよ,Emacs で文書を閲覧・作成しながら一発操作で英辞郎を参照できるようになる。つまり同一環境内ですぐに辞書にアクセスできるわけで,その意味で辞書検索ブラウザの操作よりも便利なところがある。

備忘録として,FreeBSD,Mac OS X の UNIX X11 Emacs 環境に英辞郎辞書をセットアップするレシピを,以下に整理しておく。UNIX — 商用アプリケーションの世界から冷遇されている — のユーザが,英辞郎を我がものにするために行う作業は,まず Windows に英辞郎 Ver.4 を構築することである...。それは,本書 CD にはテキスト形式の辞書データが添付されておらず,付属プログラムの辞書変換機能で抽出せざるをえないからである。ここでのインストール処方では wget (ダウンローダ),nkf (ネットワーク漢字フィルタ) と ruby 言語が必要なので,予め組込んでおくこと。

  1. Windows 環境を起動し,書籍添付 CD からインストールを行う。完了したら,CD を抜く前に一度,辞書検索ブラウザ・プログラム PDIC Unicode for EIJIRO IV (以下,検索ブラウザ) を起動する。これを行わないと利用できないようになっている (CD のコピーでは使わせない工夫かも知れない)。
  2. 辞書データを,次の操作によって PDIC テキスト形式で抽出する。検索ブラウザ「FILE」--「辞書設定 (詳細)」から,辞書の一覧を表示させる。Eijiro112.dic を選択し,右クリックから「辞書の変換」を選ぶ。変換先テキストファイル名 (例えば Eijiro112.txt) を指定し,変換先ファイル形式を「PDIC1行テキスト形式」に設定して「OK」を押下すると辞書変換が行われる。これを,他の辞書についても繰り返す。こうして,Eijiro112.txt, Waeijiro112.txt, Ryaku112.txt, Reiji112.txt の 4 つの PDIC テキスト形式辞書が生成されたものとする。
  3. PDIC テキスト形式辞書を,UNIX 環境から参照できるところに格納する。ファイル共有の仕方はいくつもあるので,ユーザの都合に合わせてこれを実施する。Windows と FreeBSD をデュアルブートで使用しているなら,FreeBSD から Windows 領域を msdosfs マウントするのがもっとも手短な方法だろう。ここでは,NFS 共有ディレクトリ /shared/eijirou 下に PDIC テキスト形式辞書を格納したものとする (私がそうしているからに過ぎない)。
  4. UNIX 環境に sdic をインストールする。sdic は Emacs で辞書を閲覧するためのフリーウェアである。以降の操作はターゲットである UNIX 環境において行うものである。sdic については作者・土屋雅稔氏のページ『English Japanese dictionary for mule/emacs』を参照。
  5. % cd ~/tmp
    % wget -nH -nd http://namazu.org/~tsuchiya/sdic/sdic-2.1.3.tar.gz
    % tar zxvf sdic-2.1.3.tar.gz
    % cd sdic-2.1.3
    % ./configure
    % make
    % sudo make install

  6. PDIC 形式を SDIC 形式に変換する。このため,eiei さんがそのブログ記事『[emacs][英辞郎]英辞郎第四版買ってみた。emacsで使いたい。 sdic編』で掲載している ruby プログラムを,ここで拝借する。このページにあるスクリプトをコピーして,pdic2sdic.rb というファイル名で保存する。そして以下のオペレーションで辞書を変換する。sdic の辞書は /usr/local/share/dict 下に格納するものとしている。
  7. % su -m
    # cat /shared/eijirou/Eijiro112.txt /shared/eijirou/Ryaku112.txt |\
     nkf -w8 | ruby pdic2sdic.rb > /usr/local/share/dict/eijirou.sdic
    # nkf -w8 /shared/eijirou/Waeijiro112.txt |\
     ruby pdic2sdic.rb > /usr/local/share/dict/waeijirou.sdic
    # exit

  8. 英辞郎は英和辞書テキストだけも 180 万行あり,sdic を裸の状態で利用すると — 辞書先頭から grep で検索するためか — ファイル後方に位置する単語エントリの探索において長い旅に出てしまい,とても快適に使える代物ではない。sdic は,かかる事態を想定し,インデックスによって検索を高速化する外部プログラムインタフェースを備えている。次にその外部プログラムである sufary をインストールする。sufary は作者・山下達雄氏の Web ページによれば Ver. 2.3.8 が最新である。しかし,sdic と連携して利用する場合,現時点では 2.1.1 を使うのがよい。sdic が期待する sufary プログラム名称・仕様が新しい版では変更されてしまったからである。sufary 2.1.1 インストールは以下のとおり。
  9. % cd ~/tmp
    % wget -nH -nd http://nais.to/~yto/tools/sufary/src/sufary-2.1.1.tar.gz
    % tar zxvf sufary-2.1.1.tar.gz
    % cd sufary-2.1.1
    % make
    % sudo cp -p array/array /usr/local/bin
    % sudo cp -p mkary/mkary /usr/local/bin
    % rehash

  10. sdic 辞書のインデックスを,mkary コマンドで作成する。ソート処理で結構な時間と CPU コストを要する。また,インデックスファイルはもとの辞書の 3 倍もの容量を消費するので,ディスクの空き容量をチェックしておく。次のオペレーションの結果,eijirou.sdic.ary, waeijirou.sdic.ary の 2 つのインデックスが生成されるはずである。
  11. % su -m
    # cd /usr/local/share/dict
    # mkary eijirou.sdic
    # mkary waeijirou.sdic
    # exit

  12. sdic を使うため,Emacs 初期設定ファイル .emacs に対し以下のような Elisp コードを追加する。(strategy array) という指定が sufary インデックスを参照するために必要である。追加した Elisp を評価させるか,Emacs を再起動すれば sdic が使用可能となる。
  13. ;; sdic 英辞郎 英和・和英辞書
    (autoload 'sdic-describe-word "sdic" "sdic 英和・和英辞書検索" t nil)
    ;; カーソル位置の語を検索するキー設定
    (global-set-key "\C-cw" 'sdic-describe-word)
    ;; 英和辞書
    (setq sdic-eiwa-dictionary-list
              '((sdicf-client "/usr/local/share/dict/eijirou.sdic" 
    						  (strategy array))))
    ;; 和英辞書
    (setq sdic-waei-dictionary-list
              '((sdicf-client "/usr/local/share/dict/waeijirou.sdic"
    						  (strategy array))))
    (setq sdic-default-coding-system 'utf-8-unix)

  14. Mac OS X ネイティブ Emacs (Emacs.app) の場合は,sufary - array コマンドが格納されているディレクトリパスを Emacs から参照できるように,以下のような記述を .emacs に追加しておく必要がある。X11 Emacs の場合は,起動シェルのパス環境変数に設定されているはずなので,これは不要である。
  15. ;; コマンドパスの追加
    (setq exec-path (cons "/usr/local/bin" exec-path))
    (setenv "PATH"
    		(concat '"/usr/local/bin:" (getenv "PATH")))

以上で設定は完了である。Emacs のバッファ・テキストにおいて,意味を調べたい語 (英語,日本語) にカーソルを位置づけて,C-c w とタイプするとミニバッファに "Input word : [カーソル位置の単語]" と表示され,ここで Enter キーを押すと,下図のような辞書検索結果が表示される。

sdic-cap.png

「Input word : 」に対する sdic の検索指定は以下のとおり。指定によりいくつかのトランケーションが可能になっている。完全一致以外の検索 (とくに全文検索) は時間がかかる。ここでは,検索したい語を word と表記している。

  • 'word' (シングルクォートで囲む):word に完全一致する単語を検索
  • word* (末尾に * ):word に前方一致する単語を検索 ex: word-blind
  • *word (先頭に * ):word に後方一致する単語を検索 ex: bear a sword
  • /word (先頭に / ):word 全文検索 ex: fixed-word-length computer
  • これで Emacs 作業の強力なツールが追加できた。ロシア語辞書もあるとうれしいのだけど。私は英辞郎辞書を NFS 共有ディレクトリに格納し,これを FreeBSD, Mac OS X それぞれの /usr/local/share/dict からシンボリックリンクして,共用している。

    以上,UNIX Emacs 環境で英辞郎を利用する方法をしるした。sdic の詳細マニュアルは Emacs info や,作者・土屋雅稔氏のサイトで参照できる。一方,Windows で動作する Emacs である Meadow でも sdic を使うことができる。sufary による高速化についても,Cygwin 環境でこれをインストールすれば可能であると sdic リファレンスには書かれている。