# ebstopcode コマンド

この文書は EB ライブラリバージョン 4.4.3 に対応しています。

目次:

- はじめに
- `ebstopcode` の実行
- `ebstopcode` のオプション一覧

Copyright (c) 2003-2006 Motoyuki Kasahara

## はじめに

あなたが EB ライブラリのアプリケーションを使って CD-ROM 書籍の中のある 単語を引く際、その単語の説明が終了する箇所で、アプリケーションが本文の 出力を止めることをあなたは期待するのではないでしょうか。 しかし、EB ライブラリはそのような動作を保証することができません。 なぜなら、CD-ROM 書籍の本文には、項目の終わりを示す印が存在しないから です。

幸いにも、多くの CD-ROM 書籍には、項目の終わりを示す印の代替として 使える、本文の区切りコード (text stop code) というものを持って います。 通常、EB ライブラリはこの区切りコードを自動的に推測するようになって いるのですが、時々誤った区切りコードを導き出すことがあります。 その場合は、appendix (付録) というものを用いて、EB ライブラリに 正しい区切りコードを教えてやらなくてはなりません。

`ebstopcode` コマンドは、CD-ROM 書籍の本文の区切りコードを解析 するためのツールです。

## `ebstopcode` の実行

`ebstopcode` の一般的な起動方法は次の通りです。

>     % ebstopcode 書籍へのパス　副本

書籍へのパス には、CD-ROM 書籍のトップディレクトリ、つまり `catalog` または `catalogs` ファイルが存在する ディレクトリを指定します。 遠隔アクセス用の識別子 (`ebnet://...`) を指定することも可能です。 書籍へのパス が省略された場合は、カレントディレクトリが指定された ものと見なされます。

副本 には、処理の対象とする副本のディレクトリ名を指定します。 `ebinfo` コマンドを用いると、CD-ROM 書籍にどのような副本が 含まれているのかを知ることができます。

>     % ebinfo /cdrom
>     ディスクの形式: EB/EBG/EBXA/EBXA-C/S-EBXA
>     文字コード: JIS X 0208
>     副本の数: 2

>     副本 1:
>       題名: 新英和辞典（第四版）
>       ディレクトリ: english
>       検索方式: 前方一致 後方一致 条件 メニュー
>       フォントの大きさ: 16 24 30 48
>       半角フォントの文字: 0xa121 -- 0xa24e
>       全角フォントの文字: 0xa321 -- 0xa27e

>     副本 2:
>       題名: CD-ROM 仏和辞典（第三版）
>       ディレクトリ: french
>       検索方式: 前方一致 後方一致 条件 メニュー
>       フォントの大きさ: 16 24 30 48
>       半角フォントの文字:
>       全角フォントの文字: 0xa321 -- 0xa27e

(`ebinfo` コマンドに関しての詳細は、 ebinfo コマンドのマニュアル を参照のこと。) この例では、2 つの副本が書籍には含まれており、その名前は `english` と `french` だということが分かります。

副本 `english` の区切りコードを解析するには、以下を実行します。

>     % ebstopcode /cdrom english

`ebstopcode` は、副本の本文と区切りコードの候補を次のように 出力します。

>     === stop-code?: 0x1f09 0x0001 ===

>     === stop-code?: 0x1f41 0x0100 ===
>     A

>     === stop-code?: 0x1f09 0x0001 ===
>     [名] 1: A 抗原を有する赤血球を持つ血液型

>     === stop-code?: 0x1f09 0x0001 ===
>     2: メートル基準の長さの単位。10億分の 1 メートル。

>     === stop-code?: 0x1f09 0x0001 ===
>     3: アンペア。電流の基本単位で、SI単位系の一つ。

>     === stop-code?: 0x1f09 0x0001 ===

>     === stop-code?: 0x1f41 0x0100 ===
>     (以下略)

`stop-code?:` と書かれた行はそれぞれ、区切りコードの候補を 示しています。 これを区切りコードとして指定すると、EB ライブラリはその地点で本文の 出力を停止します。

この `english` という副本の適切な区切りコードは、"0x1f41 0x0100" になります。 `--no-candidate` と `--code` オプションを使用して、この 区切りコードを試してみます。

>     % ebstopcode --no-candidate --code "0x1f41 0x0100" /cdrom english
>     A
>     [名] 1: A 抗原を有する赤血球を持つ血液型。
>     2: メートル基準の長さの単位。10億分の 1 メートル。
>     3: アンペア。電流の基本単位で、SI単位系の一つ。

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

`ebstopcode` コマンドは、伝統的な一文字オプション名と覚えやすい長い オプション名の両方を扱うことができます。 長いオプション名を表すには、`-` ではなく `--` を 用います。 オプション名が一意に決まる範囲内で、名前の後方部分を省略することが できます。

`-c コード`
`--code コード`
  コード を区切りコードに指定します (例: "0x1f09 0x0001")。 `ebstopcode` は、コード を見つけるまで本文を出力します。
`-h`
`--help`
  ヘルプメッセージを標準出力に出力して、終了します。
`-l 長さ`
`--length 長さ`
  本文データを最長で 長さ バイトまで出力します。 長さ を 0 にすると、`ebstopcode` は本文全体を出力します。 このオプションを指定しなかったときは、2048 になります。
`-n`
`--no-candidates`
  区切りコードの候補を出力しないようにします。
`-p ページ:オフセット`
`--text-position ページ:オフセット`
  本文データの出力をこの位置から開始します。 ページ には 0 より大きい 16進整数を、オフセット には、 0〜0x7FF の間の 16進整数をそれぞれ指定します。 このオプションを指定しなかったときは、本文データの先頭位置から出力します。
`-v`
`--version`
  バージョン番号を標準出力に出力して、終了します。

`--code` (`-c`) と `--length` (`-l`) オプションは、互いにもう一方のオプションを打ち消します。