\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename eblook.info @settitle eblook @setchapternewpage off @c %**end of header @set UPDATED 23 Oct. 2002 @set EDITION 1.6 @set VERSION 1.6 @ifinfo @dircategory CD-ROM Book Utilities @direntry * eblook: (eblook). Interactive EB interface command. @end direntry This file documents eblook, an interactive EB interface command. Copyright @copyright{} 1997,1998,1999,2000 Keisuke Nishida Copyright @copyright{} 2000-2002 Satomi Copyright @copyright{} 2000,2001 Kazuhiko Copyright @copyright{} 2000-2002 NEMOTO Takashi 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. @ignore Permission is granted to process this file through TeX and print the results, provided the printed document carries a copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual). @end ignore 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. @end ifinfo @titlepage @title eblook @subtitle for eblook @value{VERSION} @author Keisuke Nishida @author Kazuhiko @author Satomi @author NEMOTO Takashi @page @vskip 0pt plus 1filll Copyright @copyright{} 1997,1998,1999,2000 Keisuke Nishida Copyright @copyright{} 2000-2002 Satomi Copyright @copyright{} 2000,2001 Kazuhiko Copyright @copyright{} 2000-2002 NEMOTO Takashi 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. @end titlepage @contents @ifinfo @c ********************************************************************* @node Top, Introduction, (dir), (dir) @top eblook eblook は、EB ライブラリを用いた対話型の電子辞書検索コマンドです。簡単な 設定とコマンドにより CD-ROM 書籍が利用出来ます。 本書は eblook @value{VERSION} について説明しています。 @end ifinfo @menu * Introduction:: はじめに * Overview:: 大まかな使い方 * Starting:: eblook の起動 * Setting:: 辞書の選択と設定 * Search:: 検索法 * Information:: 各種情報 * Commands:: コマンド一覧 * Variables:: 変数一覧 * Compile:: コンパイルとインストール * How To Get:: 最新情報の入手 @end menu @c ********************************************************************* @node Introduction, Overview, Top, Top @chapter はじめに eblook は、EB ライブラリ(@inforef{Top, EB, eb})を用いた対話型の電子辞書 検索コマンドです。簡単な設定とコマンドにより CD-ROM 書籍が利用出来ます。 eblook は手軽さを重視したツールであり、ユーザ・アクセスの管理など、ネッ トワーク利用を想定した複雑な機能は提供していません。そのような目的には NDTPD というソフトウェアが公開されていますので、そちらが利用になれます。 (@url{http://www.sra.co.jp/people/m-kasahr/ndtpd/} を参照) eblook はフリー・ソフトウェアです。あなたは、Free Software Foundation が 公表した GNU General Public License (GNU 一般公有使用許諾)のバージョン 2 あるいはそれ以降の各バージョンの中からいずれかを選択し、そのバージョンが 定める条項に従って eblook を再配布または変更することができます。 eblook は有用とは思いますが、頒布にあたっては、市場性及び特定目的適合性 についての暗黙の保証を含めて、いかなる保証も行ないません。詳細については GNU General Public License をお読みください。 加えてあなたは、eblook と共に利用する CD-ROM 書籍の使用許諾も守らなけれ ばなりません。書籍の利用が許されない場合にも eblook を用いることは可能か もしれませんが、そのような場合に eblook を用いてはなりません。 @c ********************************************************************* @node Overview, Starting, Introduction, Top @chapter 大まかな使い方 辞書のあるディレクトリを引数に、eblook をシェルから起動します。 @example % @kbd{eblook /cdrom} eblook> @point{} @end example @code{help} でコマンド一覧を表示します。 @example eblook> @kbd{help} book [directory [appendix]] - Set a book directory info - Show information of the selected book list - List all dictionaries in the selected book select subbook - Select a subbook subinfo - Show information of the selected subbook copyright - Show copyright of the selected subbook menu - Show the menu of the selected subbook search pattern [offset] - Search for a word content entry [offset] - Display contents of entry dump entry [offset] - Display dumps of entry font [id] - Display the bitmap of gaiji show [variable] - Show the value of variables set variable value - Set a variable to the value unset variable... - Unset variables candidate - Show candidates for multi search label [id] - Show label for multi search help - Show this message quit - Quit program @end example @code{list} で辞書一覧を表示します。 @example eblook> @kbd{list} 1. KOKUGO 国語辞典 2. EIWA 英和辞典 @end example @code{select} で辞書選択し、@code{search} で検索します。 @example eblook> @kbd{select 2} eblook> @kbd{search test} 1. 1234:567 test @end example @code{content} で内容表示します。 @example eblook> @kbd{content 1} test /t'est/ [名] 1. 試験... @end example @code{quit} で終了します。 @example eblook> @kbd{quit} % @point{} @end example @c ********************************************************************* @node Starting, Setting, Overview, Top @chapter eblook の起動 eblook の起動方法は次の通りです。 @example eblook [option...] [@var{book-directory} [@var{appendix-directory}]] @end example @var{book-directory} は書籍のあるディレクトリを指定します。省略された場 合は、カレントディレクトリが書籍ディレクトリとみなされます。 @var{appendix-directory} には Appendix のあるディレクトリを指定します。 省略された場合は、Appendix は利用されません。(@pxref{Appendix}) これら引数の値は、どちらも起動後に変更することも出来ます。 @pxref{Setting} を参照して下さい。 オプションには次のものが有効です。 @table @code @item -e @itemx --encoding=NAME 文字コードを指定します (euc, sjis, jis, utf8)。デフォルトは自動判別。 使用できる文字コードはシステムの iconv ライブラリに依存します。 iconv の無いシステムでは euc, sjis が使用可能です。 @item -q @itemx --no-init-file 初期化ファイル(@file{~/.eblookrc})を読み込みません。 @item -v @itemx --version コマンドのバージョン番号を表示して終了します。 @item -h @itemx --help コマンドのヘルプを表示して終了します。 @end table @c ********************************************************************* @node Setting, Search, Starting, Top @chapter 辞書の選択と設定 eblook を起動すると、最初にホームディレクトリにある初期化ファイル (@file{~/.eblookrc}, DOS版 の場合は @file{%HOME%/eblookrc}) を読み込みます。 このファイルには以下に記載された任意のコマンドを記述することができ、先頭から順に解釈されます。ただし、このコマンド実行は書籍ファイルを開く前に実行されるため、検索コマンド等はエラーとなります。 コマンド @code{book} により書籍のあるディレクトリを指定します。 @example eblook> @kbd{book} @file{/cdrom} @file{/usr/local/share/eb/appendix} @end example 書籍ディレクトリに含まれる辞書の一覧は、コマンド @code{list} により見る ことが出来ます。 @example eblook> @kbd{list} 1. KOKUGO 国語辞典 2. EIWA 英和辞典 @end example 辞書はコマンド @code{select} によりセットすることで、利用可能となります。 @example eblook> @kbd{select 1} @end example あるいは @example eblook> @kbd{select KOKUGO} @end example コマンド @code{set} により、オプションの設定が可能です。例えばプロンプト を変更するには、次のようにします。 @example eblook> @kbd{set prompt "eblook$ "} eblook$ @point{} @end example 上のように、引数に空白を含める必要がある場合には、値をダブルクオートで引 用出来ます。 変数の値はコマンド @code{show} で見ることが出来ます。 値を無効にするにはコマンド @code{unset} があります。 @example eblook$ @kbd{show prompt} eblook$ eblook$ @kbd{unset prompt} eblook> @kbd{show} version eblook 1.0 max-text 8192 max-hits 256 eblook> @point{} @end example 設定・参照できる変数の一覧は @ref{Variables} を参照して下さい。 @c ********************************************************************* @node Search, Information, Setting, Top @chapter 検索方法 このバージョンの eblook では、検索方式として単語検索(前方一致検索、後方 一致検索、完全一致検索)と、メニューの参照を行なうことが出来ます。また、 外字を扱うことも出来ます。 @menu * Word Search:: 単語検索 * Keyword Search:: 条件検索 * Multiple Search:: 複合検索 * Menu:: メニュー * Content:: 内容表示 * Appendix:: 外字の置換 @end menu @c ===================================================================== @node Word Search, Keyword Search, Search, Search @section 単語検索 コマンド @code{search} で検索を行ないます。あらかじめ辞書を選択しておく 必要があります。 @example eblook> @kbd{select EIWA} eblook> @kbd{search test} 1. 1234:567 test @end example 変数 @code{search-method} により検索方式を変更出来ます。現在、次のものを 指定可能です。(デフォルトは @code{glob}) @table @code @item word 前方一致検索を行なう。 @item endword 後方一致検索を行なう。 @item exact 完全一致検索を行なう。 @item glob 文字列を見て、検索法を決定します。検索語が @samp{foo*} ならば @samp{foo} をキーに前方一致検索を行ない、同様に @samp{*foo} ならば後方一致検索を行 い、@samp{foo} ならば完全一致検索を行ないます。 @end table @example eblook> @kbd{show search-method} glob eblook> @kbd{search test*} 1. 1234:567 test 2. 2345:678 testament eblook> @kbd{search *test} 1. 1234:567 test 2. 3456:789 latest eblook> @kbd{set search-method word} eblook> @kbd{search test} 1. 1234:567 test 2. 2345:678 testament @end example 出力の一桁目はエントリの番号で、二桁目はエントリを決定するためのコード番 号です。いずれかをコマンド @code{content} に渡すことで、エントリの内容が 出力されます。(@pxref{Content}) 変数 @code{max-hits} により、出力する見出し語の数を制限出来ます。 @example eblook> @kbd{show max-hits} 256 eblook> @kbd{search t*} 1. 1263:25 t 2. 1273:832 t. : 255. 1312:684 tabu @end example 続きを表示するには、@code{search} に第二引数を渡して下さい。 @example eblook> @kbd{search t* 256} 256. 1336:32 tantalization 257. 1358:2ab tantalize : 511. 14c6:233 tea shop @end example 引数や @code{max-hits} に 0 を指定すると、全てのエントリが出力されます。 @c ===================================================================== @node Keyword Search, Multiple Search, Word Search, Search @section 条件検索 コマンド @code{search} で検索を行なう際に @samp{=foo} のように @samp{=} に続いてキーワードを指定すれば条件検索を行います。@samp{=foo=bar} のよう に、複数のキーワードを指定することができます。 @example eblook> @kbd{search =日本=茶} 1. 54a:56a うぐいす【鶯】ウグヒス 2. 658:2ce うれしの‐ちゃ【嬉野茶】 3. 129e:256 グリーン‐ティー【green tea】 4. 1577:166 こう‐ちゃ【紅茶】 5. 28a9:bc ちゃのほん【茶の本】 6. 3323:29e はぶ‐そう【波布草】‥サウ @end example (以上、例は広辞苑第四版より) @c ===================================================================== @node Multiple Search, Menu, Keyword Search, Search @section 複合検索 コマンド @code{label} により、その辞書での複合検索のラベルを全て表示しま す。番号は複合検索 ID です。@code{label 1} とすると、その番号の ID のラ ベルのみ出力します。 @example eblook> @kbd{label} 1. 地域(→参照):時代(→参照):キーワード:キーワード: 2. 国名・地域名(→参照):地方名(→参照):キーワード:キーワード: 3. 国名など(→参照):ジャンル(→参照):キーワード:キーワード: 4. 季節(→参照):ジャンル(→参照):キーワード:キーワード: @end example コマンド @code{candidate} により、複合検索のキーワードの候補を表示します。 @example eblook> @kbd{candidate} multi search 1: label 1: 地域(→参照) candidates: exist *日本 *中国・朝鮮 *ヨーロッパ・北アメリカ *インド・アフリカなど label 2: 時代(→参照) candidates: exist *近代以前 *近現代 label 3: キーワード candidates: not-exist label 4: キーワード candidates: not-exist multi search 2: label 1: 国名・地域名(→参照) candidates: exist (後略) @end example 実際に複合検索を実行するには、コマンド @code{search} で検索を行なう際に @samp{:中国・朝鮮:近現代:ひと:*:} のように @samp{:} で区切ってキーワード を指定します。 @example eblook> @kbd{search :中国・朝鮮:近現代:ひと:*:} 1. 2fa:36 いく‐たつふ【郁達夫】 2. 759:636 えん‐せいがい【袁世凱】ン‥ 3. 7a7:25e おう‐こくい【王国維】ワウ‥ 4. 7ba:6ec おう‐ちょうめい【汪兆銘】ワウテウ‥ (後略) @end example コマンド @code{set multi-search-id 2} などとすると、複合検索 ID を切り替 えられます。 @example eblook> @kbd{set multi-search-id 2} eblook> @kbd{label 2} 2. 国名・地域名(→参照):地方名(→参照):キーワード:キーワード: eblook> @kbd{search :日本:北海道:*:*:} 1. 7b:3ac あかびら【赤平】 2. 8b:218 あかん【阿寒】 3. 8b:31a あかん‐こ【阿寒湖】 4. 8b:434 あかん‐こくりつこうえん【阿寒国立公園】‥ン (後略) @end example (以上、例は広辞苑第四版より) @c ===================================================================== @node Menu, Content, Multiple Search, Search @section メニュー 辞書がメニューを持つ場合、コマンド @code{menu} により出力されます。 @example eblook> @kbd{menu} 『国語辞典』について 凡例 @end example 角括弧に挟まれたタグのうち、@samp{/reference=} となっている部分の後ろが メニューの内容となっており、コマンド @code{content} によりその先を得るこ とが出来ます。(@pxref{Content}) @example eblook> @kbd{content 2a18:2} 『国語辞典 第一版』 19xx年xx月xx日 第一版第一刷 @end example @c ===================================================================== @node Content, Appendix, Menu, Search @section 内容表示 コマンド @code{content} により、エントリの内容が得られます。 @example eblook> @kbd{search test} 1. 1234:567 test 2. 2345:678 testament eblook> @kbd{content 1} test /t'est/ [名] 1. 試験... eblook> @kbd{content 1234:567} test /t'est/ [名] 1. 試験... @end example 内容がリファレンスを持つ場合、その部分が先のメニューと同じタグによって表 わされます。 @code{search} と同様に、出力するバイト数を変数 @code{max-text} によって 調節出来ます。続きを得る場合には @code{content} に第二引数を与えるのも同 じです。0 を与えると最後まで出力されます。 出力内容の外字部分を通常のテキスト文字で置き換えることも可能です。 @ref{Appendix} を参照して下さい。 @c ===================================================================== @node Appendix, , Content, Search @section Appendix ファイルの利用 eblook が内部で利用している EB ライブラリには、Appendix と呼ばれる 各辞書に固有の項目区切り記号や外字代替法を指定する機能があります。 eblook を単体使用する場合など、外字 bitmap が表示できない場合や 項目区切りがうまく自動設定されない場合、前後項目への移動機能が正常に 動作しない場合にご利用下さい。 主要な辞書については既に他の人が Appendix ファイルを作製してくれて いる場合があります。その場合には Appendix パッケージを入手し、適当な ディレクトリに展開して下さい。 @table @asis @item NDTPD @url{http://www.sra.co.jp/people/m-kasahr/ndtpd/} @end table eblook コマンドの第二引数か、もしくはコマンド @code{book} の第二引数とし てディレクトリを指定することにより機能します。 (@pxref{Starting}) 自分で Appendix を作製する場合には、現在のところ明文化された 説明文がありませんので、既存の適当な appendix ファイル中の @file{*.app} を参考に作製して下さい。 @subsection 項目区切りの指定 項目間の区切り記号が正常に認識できない場合に指定します。 うまくいかない場合、たいていは appendix ファイル中で @code{stop-code 0x1f09 0x0001} を指定すれば良いと思いますのでお試し下さい。 @subsection 外字の置換 EB ライブラリの機能として、CD-ROM 書籍に含まれる特殊な外字を通常の文字列 で置き換えることが可能です。何もしないと、外字は次のように表わされます。 @example eblook> @kbd{content 1234:567} test /tst/ 1. 試験... @end example 外字の置き換えを行なうと、以下のように表示することができます。 (lookup と組み合わせて使用するときは、外字を bitmap 表示すること が可能な場合がありますので、好みの方法を選択して下さい。) @example eblook> @kbd{book /cdrom /usr/local/share/eb/appendix} eblook> @kbd{content 1234:567} test /t'est/ [名] 1. 試験... eblook> @point{} @end example あるいはコマンド @code{font} により、外字のデータを xbm 形式のビットマッ プデータとして得ることも出来ます。 @example eblook> font ha123 #define default_width 8 #define default_height 16 static unsigned char default_bits[] = @{ 0x00, 0x30, 0x18, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x7e, 0x02, 0x02, 0x44, 0x38, 0x00, 0x00@}; @end example @c ********************************************************************* @node Information, Commands, Search, Top @chapter 各種情報 コマンド @code{info} により、書籍の情報が出力されます。 @example eblook> @kbd{info} disc type: EPWING character code: JIS X 0208 the number of dictionaries: 4 @end example コマンド @code{subinfo} により、選択している辞書の情報が出力されます。 @example eblook> @kbd{select EIWA} eblook> @kbd{subinfo} title: 英和辞典 directory: EIWA search methods: word endword exact menu font sizes: 16 24 30 48 widw font characters: 0xa123 -- 0xa456 @end example コマンド @code{copyright} により、選択している辞書の著作権情報が出力され ます。 @example eblook> @kbd{copyright} 「英和辞典」 Copyright (C) 1998 Keisuke Nishida @end example コマンド @code{help} により、コマンドの一覧が出力されます。 @c ********************************************************************* @node Commands, Variables, Information, Top @chapter コマンド一覧 @table @code @item book [@var{directory} [@var{appendix}]] 辞書を選択します。第一引数には書籍のあるディレクトリ、第二引数には Appendix のあるディレクトリを指定します。全て省略した場合には、現在の設 定が表示されます。 @item info 選択されている書籍に関する情報を出力します。 @item list 選択されている書籍の辞書一覧を出力します。 @item select @var{dictionary} 辞書を選択します。設定すべき値は、@code{list} コマンドの出力から得られます。 @item subinfo 選択されている辞書に関する情報を出力します。 @item copyright 選択されている辞書の著作権情報を出力します。 @item menu 選択されている辞書がメニューを持つ場合、それを出力します。(@pxref{Menu}) @item search @var{pattern} [@var{offset}] 検索を行ないます。第二引数は出力の開始位置。(@pxref{Search}) @item content @var{entry} [@var{offset}] エントリの内容を出力します。第二引数は出力の開始位置。(@pxref{Content}) @item font [@var{id}] 外字データを xbm 形式で出力します。引数を省略した場合、全ての外字の情報を 出力します。外字の高さは変数 @code{font} により与えられます。 @item show [@code{-a}] [@var{variable}] 変数の値を出力します。引数を省略した場合、すべての変数の一覧が出力されます。 @code{-a} を指定すると、通常表示されない内部変数も表示します。 @item set @var{variable} @var{value} 変数の値をセットします。 @item unset @var{varialbe}... 変数をクリアします。 @item help コマンドの一覧を出力します。 @item quit eblook を終了します。 @end table @c ********************************************************************* @node Variables, Compile, Commands, Top @chapter 変数一覧 @table @code @item search-method @code{search} コマンドの検索法。@code{exact}, @code{word}, @code{endword}, @code{glob} のいずれかが可能。デフォルトは @code{glob}。 @item max-hits @code{search} コマンドが出力する最大の項目数。0 のとき無制限。 デフォルトは 256。 @item max-text @code{content} コマンドが出力する表示バイト数(の目安)。0 のとき無制限。 デフォルトは 8192。 @item font 外字データの高さ。デフォルトは 16。 @item kanji-code 入出力の文字コード。設定出来る値は @code{jis}, @code{sjis}, @code{euc}, @code{utf8}, @code{auto} など。(大文字、小文字の区別なし)。使用できるコードは OS に依存します。 @item prompt プロンプト。デフォルトは "eblook> "。 @item version eblook のバージョン番号。 @item use-narrow-kana "true" を指定すると出力に半角カナ文字を含めます。デフォルトは "off" で、 半角カナ文字は全角文字として出力されます。 @item stop-code [廃]テキスト出力の終了コード。"set stop-code 0x1f090000" のように指定します。 辞書によっては、これを指定しないと出力が適切な個所で終了しません。 最近の eb library (Version 3.x) との組み合わせでは機能しません。かわりに appendix file を指定して下さい。(@pxref{Appendix}) @item pager [仮] "on" を設定すると検索結果表示時 (content コマンド)に 環境変数 PAGER で 指定したページャーが使用される。この機能を使用するためには、コンパイル時に --with-pager オプションをつけて configure する必要がある。 (注)この変数は将来変更される可能性が高い @item decorate-mode [仮] "on" を設定すると文字装飾のためのタグを出力します。 (注)この変数は将来変更される可能性が高い @end table @c ********************************************************************* @node Compile, How To Get,Variables, Top @chapter コンパイルとインストール 通常の UNIX 環境では、コンパイルはそれほど難しくありません。 以下の手順でコンパイルを行なって下さい。 @enumerate @item まず、eb library をインストールして下さい。 eb library は @url{http://www.sra.co.jp/people/m-kasahr/eb/} より入手可能です。 @item @kbd{configure} スクリプトを実行します。 @kbd{./configure --prefix=/usr --with-eb-conf=/etc/eb.conf } などとします。指定できるオプションは以下の一覧を参照して下さい。 @item @kbd{make} を実行します。 @item @kbd{make install} を実行します。インストール先によっては root 権限が必要になります。 @end enumerate 主要な設定オプション @table @code @item --prefix インストール先を指定します。何も指定しないと、 @kbd{--prefix=/usr/local} を 指定した場合と同じです。 @item --with-eb-conf=FILE eb library の設定情報ファイルのありかを指定します。通常、自動的に $(prefix)/etc/eb.conf ($(sysconfdir)/eb.conf)が仮定されるので、 それ以外の場所にインストールした場合には @kbd{--with-eb-conf=/etc/eb.conf} あるいは @kbd{--sysconfdir=/etc} などとして明示的に指定して下さい。 @item --with-readline GNU readline ライブラリを使用して行編集を行う場合に指定します。 @item --with-pager 検索結果を外部 pager を利用して表示します。実際の使用にあたっては、環境変数 @kbd{PAGER} の指定 (@kbd{setenv PAGER less} 等) と eblook 変数の指定 @kbd{set pager on}"が必要です。 @end table @c ********************************************************************* @node How To Get, , Compile, Top @chapter 最新情報の入手 最新の eblook は,次のところから入手可能です。 @table @asis @item eblook @url{http://openlab.ring.gr.jp/edict/eblook/} @end table eblook に関する情報交換は、edict や NDTPD のメーリングリストにて行われ ています。 @table @asis @item edict @url{http://openlab.ring.gr.jp/edict/} @item NDTPD @url{http://www.sra.co.jp/people/m-kasahr/ndtpd/} @end table eblook は edict 開発チーム (@email{edict@@ring.gr.jp}) により管理さ れています。eblook に関する問い合わせはこちらまでお願いします。 @bye