# bookview

この文書は第 BookView バージョン 3.2.1 に対応しています。

Copyright (c) 1997-2004 Motoyuki Kasahara

## BookView とは

BookView は Tcl/Tk で書かれた NDTP (Network Dictionary Transfer Protocol) クライアントです。 動作させるには Tcl/Tk 8.3 かそれ以降、もしくは 8.0jp (`jp' は日本語対応 バージョンを意味します) のいずれかが必要です。

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

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

## BookView の起動

### コマンド行からの起動

UNIX 系システム上でコマンドラインから BookView を起動するには、次のよう にします。

>     /usr/local/bin/bookview

(BookView を `/usr/local` 以下にインストールしたと仮定しています。)

環境変数 `BOOKVIEW_LANG` は BookView が表示するメッセージの言語を 決定します。 デフォルトでは、日本語が選択されます。 変数を `en` に設定すると、英語のメッセージを表示するようになります。 現在のところ、メッセージは日本語と英語が利用できます。

### `wish` のオプション一覧

以下のオプションは `wish` によって解釈されます。

`-colormap new`
  メインウィンドウのカラーマップを指定します。
`-display display`
  使用するディスプレイを指定します。
`-geometry geometry`
  ウィンドウの初期位置とサイズを指定します。
`-name name`
  使用するアプリケーションの名前を指定します。
`-sync`
  ディスプレイサーバに対して同期モードを使用します。
`-visual`
  メインウィンドウに対するビジュアルを指定します。
`--`
  残りのすべての引数をスクリプトに渡します。

### `bookview` のオプション一覧

以下のオプションは `bookview` 自身によって解釈されます。

`-bg color`
  前景色を指定します。
`-fg color`
  背景色を指定します。
`-fn font`
  フォントを指定します。
`-fk font`
  漢字フォントを指定します。
`-iconic`
  ウィンドウをアイコン化した状態で起動します。
`-title title`
  ウィンドウのタイトルを指定します。
`-version`
  バージョン番号を出力して、終了します。

### セットアップ

`ファイル` メニューの中の `設定...` を選んでください。

セットアップ用のサブウィンドウが現れます。 サブウィンドウにはサーバの枠が 3 つありますので、最大 3 台までサーバを 指定することができます。

ホスト名のエントリには、ホスト名 (例: `localhost`) もしくは アドレス (例: `127.0.0.1`) を指定することができます。

ポートのエントリには、サービス名 (例: `ndtp`) もしくはポート番号 (例: `2010`) を指定することができます。 ポートのエントリにはデフォルトでサービス名 `ndtp` が指定されて いますが、あなたのシステムが `ndtp` をサービス名として認識しない と使えません。 UNIX でも Windows でも、システムの設定ファイルを編集することで、サービス名 `ndtp` を登録することができます (「`services` ファイル」を参照のこと)。 ファイルを編集できないか、したくない場合は、`ndtp` の代わりにポー ト番号を指定して下さい。

各サーバエントリには、さらに `オプション` というエントリがあります。 このエントリの中では高度な設定パラメタを設定するが可能です。 あなたがまだ BookView に慣れていないのであれば、このエントリはそのまま にしておきましょう。 エントリの中のオプションパラメタはセミコロンで区切らなくてはなりません。 現在のところ、以下のオプションが指定可能です。

`group=グループ-ID,題名,書籍-ID[,書籍-ID...]`
  書籍グループ を定義します。 書籍グループは仮想の書籍で、実際の書籍一冊以上ないし複数冊 (書籍-ID,... として書き並べられたもの) から構成されます。 BookView に対して書籍グループを検索するように命令すると、書籍グループに 属するすべての書籍を検索しにいきます。 BookView はサーバ上のすべての書籍から構成される `all` という 書籍グループを自動的に定義します。 グループ名には 等号 (`=`)、コンマ (`,`)、 アットマーク (`@`)、空白およびタブは使えません。
`start=書籍-ID`
  BookView がそのサーバに接続したときは、常に書籍 (書籍-ID) が 自動的に選択されます。 アットマーク (`@`) を先頭に付けることで、書籍グループ-ID を 指定することもできます (例: `@all`)。
`demand-load=書籍-ID[,書籍-ID...]`
  書籍を初めて選択したときに、通常、BookView はその書籍が独自に定義した文字 のビットマップデータをすべて読み込みます。 このオプションは、この振る舞いを抑制します。 BookView は、指定された書籍の独自文字のデータを、表示する直前に 読み込みます。 (このオプションの指定にかかわらず、接続が切れると読み込まれた ビットマップデータは削除されますので、留意して下さい。) アットマーク (`@`) を先頭に付けることで、書籍グループ-ID を 指定することもできます。

以下は、オプション列の例です。

>     start=super2000/chujiten; demand-load=super2000/kojien,izumi/file1

セットアップが終わったら、サブウィンドウの中の `了解` ボタンを クリックしてください。 サブウィンドウが閉じられます。 設定内容は 設定ファイル に記録されます。 このファイルは BookView 起動時に自動的に読み込まれますので、BookView を 次回起動したときに再度セットアップを行う必要はありません。

`中止` ボタンをクリックすると、サブウィンドウが閉じられ、 サブウィンドウ内で行われた編集内容はすべて破棄されます。

### `services` ファイル

OS にサービス名 `ndtp` を認識させたければ、システムの設定ファイル を編集してください (セットアップ を参照のこと)。 編集できないか、したくないのであれば、代わりにポート番号を使用して ください。

Windows では設定ファイルは、`\WINDOWS\SERVICES` になります。 UNIX 系 OS では通常このファイルは `/etc/services` になりますが、 もしあなたのホストが NIS クライアントならば、代わりに NIS サーバ上にある NIS のマップを修正しなくてはなりません。 ファイルの形式は、Windows でも UNIX でも同じです。

サービス名 `ndtp` を登録するには、ファイルに次の行が無ければ 足します。

>     ndtp          tcp/2010

次のように、システムの `services` ファイルにはすでに別の サービス名で `tcp/2010` というエントリが入っているかも 知れません。

>     search        tcp/2010

この場合は、`ndtp` というサービス名を別名としてその行に 追加して下さい。

>     search        tcp/2010        ndtp

(詳しくは、あなたのシステムのマニュアルをご覧下さい。)

### 設定ファイル

Bookview が終了したときと、あなたがセットアップウィンドウの `了解` ボタンを押したときに、その時点での設定がファイルに記録 されます。 UNIX では、この設定ファイルは `~/.bookview` になります。 Windows では、BookView を `C:\\Program Files\\BookView` に インストールした場合は、`C:\\Program Files\\BookView\\setup` になります。 設定ファイルは、BookView のスタート時に自動的に読み込まれます。

UNIX 系 OS では、システム共有のセットアップファイルを用意することも できます。 あなたのシステムにユーザが複数いるなら、ユーザが自分でセットアップ する必要がなくなるので、このファイルの存在は便利でしょう。

共有の設定ファイルは、`/usr/local/etc/bookview.conf` になります。 (BookView を `/usr/local` 以下にインストールしたと仮定しています。) 個人の設定ファイル (`~/.bookview`) と共有の設定ファイルの形式は 同じです。 共有の設定ファイルを用意するには、誰かが BookView を起動し、 セットアップウィンドウで設定を行い、`~/.bookview` を `/usr/local/etc/bookview.conf` にコピーして下さい。

設定ファイルを読み込む際、BookView は個人の設定ファイルが開けるか どうか試し、次に共有のファイルを試します。 BookView が読み込むのはどちらか一方であり、両方ではありませんので、 ご注意ください。

## BookView の基本的な使い方

この章では、BookView の基本的な使い方を説明します。

### NDTP サーバの選択

`サーバ` メニューをクリックしてください。セットアップのところ で指定したサーバがここに並べられます。

その中からサーバを一つ選ぶと、BookView はそのサーバに接続します。 サーバに対して start book ID を設定していれば、BookView は接続時に その書籍を選択します。 設定していなければ、サーバが提供している書籍の一覧が表示されます。

### 書籍の選択

選択しているサーバの持っている、利用可能な書籍および書籍グループ (セットアップ を参照のこと) の一覧が `書籍:`メニューに並べられます。 一覧の中の書籍もしくは書籍グループを一つ選んでください。

### 検索方式の選択

BookView は以下のような 検索方式 に対応しています。

完全一致検索 (Exact-Word Search)
  入力した単語に完全に一致するエントリを探します。
前方一致検索 (Word Search)
  入力された単語に対してエントリの先頭部分が一致するものを探します。
後方一致検索 (End-Word Search)
  入力された単語に対してエントリの後方部分が一致するものを探します。
条件検索 (Keyword Search)
  入力された複数の単語を含むエントリを探します。

これら検索方式の名前は `方式:` メニューにも並んでいます。

検索はこのメニューの中で選択されている方式に応じて行われます。 無効になっている検索方式は、現在選択している書籍がその検索方式に対応して いないことを意味します。 選択している書籍が書籍グループの場合、BookView はすべての検索方式を有効 にしますので注意してください。 たとえ、書籍グループの中の書籍がいずれもある検索方式に対応していなかった としても、すべての検索方式を有効にします。

### 検索

検索したいパターンを `単語:` エントリに入力して、`Return` を叩くか `検索` ボタンをクリックしてください。

条件検索を行う場合は、次のようにキーワード同士をセミコロン (`;`) で区切って書き並べて下さい。

>     have; to; do

キーワードは最大 5 個まで指定できます。

BookView は、選択している検索方式に応じた検索要求を接続中のサーバに 対して送り、サーバから返事を受け取ります。 入力した単語にマッチした候補は一番目のテキスト領域 (ヒット 領域) に並べられます。

各候補の末尾には `(->本文)` が付いています。 そこをクリックすると、対応する本文が二番目のテキスト領域 (本文 領域) に表示されます。

利便性を考慮して、特殊文字がパターン内にあると選択中の検索方式よりも 優先されるようになっています。

- パターンの中にセミコロン (`;`) があると、条件検索が 行われます。
- パターンがアスタリスク (`*`) で始まっていると、パターン の残りの部分に対して後方一致検索が行われます。
- パターンがアスタリスク (`*`) で終わっていると、パターンの 残りの部分に対して前方一致検索が行われます。

`クリア` ボタンは `単語:` エントリの内容を消去します。

### メニュー

選択した書籍が メニュー検索 に対応していた場合、ツールバーの メニューボタンと `表示` メニューの `メニュー` コマンドが使用できるようになります。 メニュー検索モードにするには、ボタンをクリックするかコマンドを選択して 下さい。

### 著作権表示

選択した書籍が 著作権表示 を持っていた場合、`RIGHT` ボタンとツールバーの `表示` メニューの `著作権` コマンドが押せるようになります。 著作権表示を見るには、ボタンをクリックするかコマンドを選択して下さい。

### 参照先へ

本文領域に表示された本文が参照先を持っていると、青色かつ下線付きで `(->参照)` と表示されます。 そこをクリックすると、参照先の本文が表示されます。

### 履歴の操作

BookView は 本文領域に表示した本文の履歴を記録しています。 履歴はメニューバーの `ジャンプ` メニューの中に並べられます。

その中の一つを選択すると、BookView は対応する本文を本文領域に表示します。

左矢印ボタンをクリックするか、`ジャンプ` メニューの `一つ前へ` コマンドを選択するか、`Alt+Left` を叩くと、 履歴リストを一つ進みます。 右矢印ボタンをクリックするか、`ジャンプ` メニューの `一つ後へ` コマンドを選択するか、`Alt+Right` を叩くと、 履歴リストを一つ進みます。

### 前後の項目への移動

BookView が本文領域に表示している本文の一つ次の項目を見るには、 `Alt+J` を叩くか、ウィンドウ底部の下向き矢印ボタンをクリックするか、 `ジャンプ` メニューの `一つ後の項へ` を選択します。

一つ前の項目を見るには、`Alt+J` を叩くか、ウィンドウ底部の 上向き矢印ボタンをクリックするか、`ジャンプ` メニューの `一つ前の項へ` を選択します。

### 終了

`ファイル` メニューの中にある `終了` コマンドを 選択すると、BookView が終了します。

## BookView の高度な使い方

この章では、エキスパートユーザ向けの BookView の機能を説明します。

### セレクションの検索

`検索` ボタンと `クリア` ボタンの間に `選択検索` ボタンがあります。 `選択検索` は セレクションの検索 (Query Selection) を行うショートカットボタンです。 `単語:` エントリの内容を消去し、セレクションをエントリに貼り付け、 その単語を検索します。

`表示` メニューの `選択から検索` コマンド、 `Alt+Return` も同じ動作をします。

### テキスト中のパターンの検索

`表示` メニューの `本文から探索...` コマンドと ツールバーのルーペボタンは同じ働きをします。 これらは、本文領域内の単語を探すときに用います。

このコマンドを選択すると、`本文の単語を探索` サブウィンドウが 現れます。

`探索:` エントリに探したいパターンを入力し、`Return` を 叩くか、`探索` ボタンをクリックすると、BookView は本文領域から パターンを探し出します。

### 書籍の一覧

`表示` メニューの `書籍一覧` コマンドを選択すると、 BookView は現在のサーバが提供している書籍の一覧を表示します。

サーバとの接続が確立したとき、そのサーバに対して start book ID を設定 していなければ、Bookview はこの一覧を自動的に表示します。

### ビットマップ表示の切り替え

`表示` メニューの中の `ビットマップの表示` チェックボタンでテキスト中のビットマップの表示、非表示を切り替えることが できます。

デフォルトでは、ビットマップを表示します。 ただし、この選択順序の中のどのサイズのビットマップも CD-ROM 書籍が持って いなかった場合は、このボタンの設定に関係なく、ビットマップは表示されません。

### ツールバー表示の切り替え

`表示` メニューの中の `ツールバーの表示` チェックボタンでツールバーの表示、非表示を切り替えることができます。 デフォルトでは、ツールバーを表示します。

### テキストの空白量

`表示` メニューの `テキストの行間隔` コマンドは、 カスケードメニューを持っています。

そしてそのメニューは、0, 2, 4, 6, 8 ピクセル という 5 つの要素を持って います。 これらは本文領域の行間の空白量を指定するために使用します。 デフォルトの値は `0 ピクセル` です。

## キーボードでの操作

BookView の機能はすべて、キーボードから呼び出すことができます。 この章では、キーボードで BookView を操作する方法について説明します。

### フォーカスの操作

次に挙げたキー操作は、ウィジェットのフォーカスを移動させます。 これらの操作は、BookView のメインウィンドウ上のどこからでも検知されます。

`Alt+F`
  `ファイル` メニューをプルダウンして、グラブします。
`Alt+V`
  `表示` メニューをプルダウンして、グラブします。
`Alt+S`
  `サーバ` メニューをプルダウンして、グラブします。
`Alt+G`
  `ジャンプ` メニューをプルダウンして、グラブします。
`Alt+H`
  `ヘルプ` メニューをプルダウンして、グラブします。
`Alt+B`
  `書籍:` メニューをプルダウンして、グラブします。
`Alt+M`
  `方式:` メニューをプルダウンして、グラブします。
`Alt+W`
  フォーカスを `単語:` エントリに移します。
`Tab`
  フォーカスを `単語:` エントリ、ヒット領域、本文領域の順番で 移動させます。

### メニューでの操作

グラブされたメニュー内では、次の操作が可能です。

`Up`
  強調されたエントリを一つ上に移動します。
`Down`
  強調されたエントリを一つ下に移動します。
`Return`
  強調されたエントリを選択します。
`Esc`
  メニューによる選択を中止します。

その他にもいくつかの操作が Tk 自身によって定義されています。 詳しくは menu(n) のマニュアルページをご覧下さい。

### 単語 エントリでの操作

`単語:` エントリ内では、次の操作が可能です。

`Left`
  カーソルを一文字分戻します。
`Right`
  カーソルを一文字分進めます。
`Home`
  カーソルをエントリの先頭に移動させます。
`End`
  カーソルをエントリの末尾に移動させます。
`Backspace`
  カーソルの左側の一文字を削除します。
`Delete`
  カーソルの右側の一文字を削除します。
`Control+K`
  カーソルの右側のすべての文字を削除します。
`Control+Y`
  セレクションを挿入カーソルの位置に挿入します。

その他にもいくつかの操作が Tk 自身によって定義されています。 詳しくは entry(n) のマニュアルページをご覧下さい。

### ヒット領域での操作

ヒット領域内では、次の操作が可能です。

`Up`
  カーソルを一行上に移動させます。
`Down`
  カーソルを一行下に移動させます。
`Prior (Page Up)`
  カーソルを一ページ分上に移動させます。
`Next (Page Down)`
  カーソルを一ページ分下に移動させます。
`Return`
  カーソル位置のヒットエントリを選択します。 そのヒットエントリのテキストがテキスト領域に表示されます。

その他にもいくつかの操作が Tk 自身によって定義されています。 詳しくは text(n) のマニュアルページをご覧下さい。

### 本文領域での操作

本文領域内では、次の操作が可能です。

`Left`
  カーソルを一文字分戻します。
`Right`
  カーソルを一文字分進めます。
`Down`
  カーソルを一行上に移動させます。
`Up`
  カーソルを一行下に移動させます。
`Prior (Page Up)`
  カーソルを一ページ分上に移動させます。
`Next (Page Down)`
  カーソルを一ページ分下に移動させます。
`space`
  カーソルを、後方の下線部分 (`(->参照)`) に移動させます。
`BackSpace`
  カーソルを、前方の下線部分 (`(->参照)`) に移動させます。
`Return`
  カーソルが下線部分にあった場合、その参照先に飛びます。

その他にもいくつかの操作が Tk 自身によって定義されています。 詳しくは text(n) のマニュアルページをご覧下さい。

### その他のいろいろな操作

これらの操作は、BookView のメインウィンドウ上のどこからでも検知されます。

`Alt+Q`
  終了。 このキー操作は `ファイル` メニューの `終了` コマンドと同じです。
`Alt+Return`
  セレクションの検索。 このキー操作は `表示` メニューの `選択から検索` コマンドと同じです。
`Alt+Left`
  履歴リストを一つ戻す。 このキー操作は `ジャンプ` メニューの `一つ前へ` コマンドと同じです。
`Alt+Right`
  履歴リストを一つ進める。 このキー操作は `ジャンプ` メニューの `一つ後へ` コマンドと同じです。
`Alt+/`
  `本文の単語を探索` サブウィンドウを出現させて、グラブします。 このキー操作は `表示` メニューの `本文の探索...` コマンドと同じです。

## よく訊かれる質問集

BookView について、よく訊かれる質問をいくつかまとめました。

### 質問 1 (日本語の入力方法)

質問
  BookView のウィンドウ上で日本語を入力するにはどうしたら良いですか?
答え
  kinput2 か XIM 対応の入力フロントエンドを使用してください。

### 質問 2 (日本語が入力できない)

質問
  kinput2 を使っていますが、BookView のウィンドウ上で日本語が入力できません。
答え
  Tk8.0jp インタプリタと kinput2 の間は、どのプロトコルを使用していますか? あなたの kinput2 はそのプロトコルを受け入れることができるようになって いますか? 環境変数 `TK_KCPROTO` が設定されていない限り、プロトコルは 次の要領で選択されます。 環境変数 `XMODIFIERS` を設定していてその値が空でなければ、 Tk8.0jp インタプリタは XIM プロトコルで kinput2 と通信しようとします。 それ以外の場合は、kinput プロトコルが使用されます。 気を付けておきたいのは、kinput プロトコルを使おうとして `XMODIFIERS` を `@im=none` に設定した場合も、XIM が選択されてしまうことです。 この場合は、`XIMODIFIERS` を未設定にするか、 `TK_KCPROTO` を `kinput` に設定して下さい。 `TK_KCPROTO` を設定するには、次のようにします。

  >     (csh, tcsh のような C 互換シェルの場合)
  >     % setenv TK_KCPROTO kinput

  >     (sh, ksh, bash, zsh のような Bourne 互換シェルの場合)
  >     $ export TK_KCPROTO; TK_KCPROTO=kinput

### 質問 3 (kipnut2 開始キーの変更)

質問
  BookView ウィンドウ上での kinput2 の開始キーを変更するにはどうしたら 良いですか?
答え
  次のように、X のリソースを設定して下さい。

  >     bookview*tkKinputStartKeys: <Shift-space> <Control-backslash>