Title PDA研究室電子辞書世界Marble教NaTsuMi
足跡Linksサイト内検索ヘッドラインセンサ
作者についてリンクについて


電子辞書 - EPWING/電子ブック形式辞書の軽量化(03/14/2003)

任意の副本の削除

必要な物
EPWING/電子ブック形式辞書
EB library (Win32版)
導入については「EB libraryの導入」をご参照下さい。

EPWING/電子ブック形式では一つの書籍データの中に、複数の副本(subbook)を含めることができます。しかし、中には必要のない副本がいくつも含まれている書籍もあります。そこで、任意の副本を削除することで辞書データの軽量化や表示の簡略化を図ることができます。

作業はまず、CD-ROMの「CATALOGS」ファイルのあるフォルダをカレントディレクトリとしたコマンドプロンプト・DOSプロンプト・ターミナルにて、

ebinfo

とします。例えば、岩波書店 生物学辞典第4版の場合、ルートディレクトリに「CATALOGS」があるので(この点は大抵の辞書で同じ)、CD-ROMドライブがQドライブだとすると、

C:\>Q:
Q:\>ebinfo

ってな具合です。UNIXのターミナルではCD-ROMを/mnt/cdromにマウントしているとすると、

% cd /mnt/cdrom
% ebinfo

ですね。すると、辞書の情報が以下の様な感じで出力されます。

disc type: EPWING
character code: JIS X 0208
the number of subbooks: 3

subbook 1:
  title: 岩波 生物学辞典 第4版
  directory: honmon
  search methods: word endword menu copyright
  font sizes: 16 24 30 48
  narrow font characters: 0xa121 -- 0xa326
  wide font characters: 0xa121 -- 0xb846

subbook 2:
  title: ウイルス分類表/生物分類表
  directory: classify
  search methods: word endword copyright
  font sizes: 16 24 30 48
  narrow font characters: 0xa121 -- 0xa326
  wide font characters: 0xa121 -- 0xb846

subbook 3:
  title: 付録
  directory: furoku
  search methods: menu copyright
  font sizes: 16 24 30 48
  narrow font characters: 0xa121 -- 0xa326
  wide font characters: 0xa121 -- 0xb846
(岩波書店 生物学辞典第4版の場合)

この出力から、生物学辞典第4版は「岩波 生物学辞典 第4版」「ウイルス分類表/生物分類表」「付録」という三つの副本(subbook)を持っており、それぞれのデータファイルは「honmon」「classify」「furoku」というディレクトリに納められていることが分かります。というわけで、これらのディレクトリと「CATALOGS」ファイルをHDDの作業ディレクトリへコピーします(これから削除する副本のデータはコピーする必要はありません)。コピー後、ReadOnly属性は外しておきます。その後、作業ディレクトリをカレントとして、

ebrefile --subbook 残したい副本のディレクトリ名(複数の場合はカンマで区切る)
もしくは
ebrefile -S 残したい副本のディレクトリ名(複数の場合はカンマで区切る)

と入力すると、指定した副本以外は削除された「CATALOGS」ファイル、「CATALOGS.new」が生成されます。上記生物学辞典第4版で、解説文本体である「岩波 生物学辞典 第4版」(「honmon」ディレクトリ下)のみを残すなら、作業ディレクトリがC:\tempの場合(DOS/Windows)、

C:\>cd temp
C:\temp>ebrefile --subbook honmon

で、作業ディレクトリが~/tempの場合(UNIX)は、

% cd ~/temp
% ebrefile --subbook honmon

となります。この後、「CATALOGS.new」を「CATALOGS」と置き換え、不要になったデータディレクトリは削除すれば任意の副本が含まれていない辞書データの出来上がりです。ただし、この操作では削除する副本のサイズが大きくないとあまり意味がありません。上記の操作を生物学辞典に行った場合、標準145MBから134MBへ、11MBしか縮小の効果はありません。この操作は、むしろ辞書利用時に表示されると邪魔なだけの副本を表示されなくするという効果の方が大きいかもしれません。


ebrefileでエラーが出てしまう場合

必要な物
EPWING/電子ブック形式辞書
ebutils もしくは epwutil
導入については「ebutils/epwutilの導入」をご参照下さい。

本来はebrefileで十分なはずなのですが、「そんな副本はない」とエラーを吐きやがって残したい副本が残せない場合があります。例えば私の環境では上記の生物学辞典の「ウイルス分類表/生物分類表」(「classify」ディレクトリ下)を残すことができませんでした。しかし、これもebutilsもしくはepwutilのcatdumpコマンドを利用することで解決できます。catdumpコマンドは「CATALOGS」ファイルの内容をテキストファイル化したり、逆にテキストファイルから「CATALOGS」ファイルを生成することができるツールです。これを利用して出力したテキストファイルをエディタで編集し、再度「CATALOGS」ファイルにすればよいのです。「CATALOGS」ファイルをテキストファイルにするには「CATALOGS」ファイルのあるディレクトリにおいて以下のようにします。

catdump -d CATALOGS >出力先テキストファイル

「CATALOGS」ファイルのあるディレクトリがC:\tempで出力先ファイル名がdump.txtの場合(DOS/Windows)、

C:\>cd temp
C:\temp>catdump -d CATALOGS >dump.txt

で、「CATALOGS」ファイルのあるディレクトリが~/tempの場合(UNIX)は、

% cd ~/temp
% catdump -d CATALOGS >dump.txt

となります。dump.txtは生物学辞典では以下のようになります。

; 電子ブック/EPWING カタログ内容 (generated by catdump v1.2pre)

[Catalog]
FileName   = CATALOGS
Type       = EPWING2
Books      = 3

[Book]
BookType   = 5002 (50:百科事典, 02:EPWING2)
Title      = "岩波 生物学辞典 第4版"
Directory  = "HONMON"
InfoBlock  = 0001
ZenGaiji   = "GA16FULLGA24FULLGA30FULLGA48FULL"
HanGaiji   = "GA16HALFGA24HALFGA30HALFGA48HALF"
Reserved1  = 00020002
BookFile   = "HONMON"

[Book]
BookType   = 5002 (50:百科事典, 02:EPWING2)
Title      = "ウイルス分類表/生物分類表"
Directory  = "CLASSIFY"
InfoBlock  = 0001
ZenGaiji   = "GA16FULLGA24FULLGA30FULLGA48FULL"
HanGaiji   = "GA16HALFGA24HALFGA30HALFGA48HALF"
Reserved1  = 00020002
BookFile   = "HONMON"

[Book]
BookType   = 5002 (50:百科事典, 02:EPWING2)
Title      = "付録"
Directory  = "FUROKU"
InfoBlock  = 0001
ZenGaiji   = "GA16FULLGA24FULLGA30FULLGA48FULL"
HanGaiji   = "GA16HALFGA24HALFGA30HALFGA48HALF"
Reserved1  = 00020002
BookFile   = "HONMON"

エディタで任意の副本の内容を削除し、[Catalog]のBooksの項の値をそれに合わせて編集します。以下のような感じです。

; 電子ブック/EPWING カタログ内容 (generated by catdump v1.2pre)

[Catalog]
FileName   = CATALOGS
Type       = EPWING2
Books      = 1

[Book]
BookType   = 5002 (50:百科事典, 02:EPWING2)
Title      = "ウイルス分類表/生物分類表"
Directory  = "CLASSIFY"
InfoBlock  = 0001
ZenGaiji   = "GA16FULLGA24FULLGA30FULLGA48FULL"
HanGaiji   = "GA16HALFGA24HALFGA30HALFGA48HALF"
Reserved1  = 00020002
BookFile   = "HONMON"

内容編集後、以下のコマンドで「CATALOGS」ファイルが生成されます(事前に元の「CATALOGS」ファイルは削除しておきます)。

catdump -u 生成元テキストファイル CATALOGS

「CATALOGS」ファイルを生成するディレクトリがC:\tempで生成元テキストファイルがdump.txtの場合(DOS/Windows)、

C:\>cd temp
C:\temp>catdump -u dump.txt CATALOGS

で、「CATALOGS」ファイルを生成するディレクトリが~/tempの場合(UNIX)は、

% cd temp
% catdump -u dump.txt CATALOGS

となります。この後はebrefileの場合と同様に不要になった副本のデータディレクトリを削除すれば作業は終了です。



任意の索引データ、画像・音声データの削除

必要な物
EPWING/電子ブック形式辞書
ebutils もしくは epwutil
導入については「ebutils/epwutilの導入」をご参照下さい。

EPWING/電子ブック形式の書籍では様々な検索方法が利用でき、画像や音声データまで持っている反面、その索引(index)データや画像、音声データによりやや容量の大きくなる傾向があります。ここでは、あまり使わないデータを削除することで辞書データの軽量化を図る方法について述べます。

まず、索引データは書籍ごとではなく副本ごとに持っているため、各副本の本体である「HONMON」ファイルのあるディレクトリをカレントディレクトリとして作業を行います。生物学辞典の解説文本体の場合「「CATALOGS」ファイルのあるディレクトリ\HONMON\DATA」(UNIX風の表記なら/「CATALOGS」ファイルのあるディレクトリ/HONMON/DATA)になります。ここで、ebutilsもしくはepwutilに含まれるbookinfoをまず実行します。

bookinfo HONMON

生物学辞典の解説文本体の場合は以下のように表示されます。

; 電子ブック/EPWING 書籍管理情報 (generated by bookinfo v1.2pre)

対象書籍ファイル = HONMON
情報所在ブロック = 1
書籍構成要素数 = 14
予備領域1(書籍種別/保護情報) = 5010H
  書籍種別: 百科事典
  保護情報: 表示許可, 印刷許可, テキスト引用許可, 図版引用許可,
            カラー図版引用許可, 動画引用禁止, 大量引用禁止
INDEX情報の取扱法 = 04H (不明)

 ID 名称                                 先頭 サイズ INDEX情報 予備3/4
*00 本文                                    2   4786 kasctygdh 00/0000
*90 前方一致かなインデックス             4788   1322 kasctygdh 00/0000
*04 前方一致かな見出し                   6110    420 kasctygdh 00/0000
*91 前方一致表記形インデックス           6530   1994 .as...... 00/0000
*05 前方一致表記形見出し                 8524    669 kasctygdh 00/0000
*70 後方一致かなインデックス             9193   1322 kasctygdh 00/0000
*06 後方一致かな見出し                  10515    420 kasctygdh 00/0000
*71 後方一致表記形インデックス          10935   1995 .as...... 00/0000
*07 後方一致表記形見出し                12930    669 kasctygdh 00/0000
 30 かなインデックス                    13599   1110 kasctygdh 00/0000
 60 表記形インデックス                  14709   1642 .as...... 00/0000
*01 メニュー                            16351    146 kasctygdh 00/0000
*02 著作権表示                          16497      1 kasctygdh 00/0000
 D2 カラー図版                          16498  51489 kasctygdh 00/0000

表示方法の初期値情報:
  有効無効フラグ = 01H (初期値情報は有効)
  一覧表表示 = 01H (一覧表を表示し、選択指示を受けて表示)
  本文表示法 = 01H (検索結果を先頭に本文を表示)

書籍ファイルサイズ = 133MB
マーク部分のサイズ =  27MB

ここではカラー図版を削除すると効果が大きいと考えられますので、これを削除してみます。「HONMON」ファイル内の任意のデータ(と言っても項目や画像一つ一つを弄れるわけではない。あくまで上記bookinfoでIDが付いている物を最小単位として削除できるだけです)を削除するには、ebutilsもしくはepwutilに含まれるsqueezeを利用します。

squeeze --delete=削除したいデータのID(複数ある場合はカンマで区切る) HONMON 出力ファイル
もしくは
squeeze -d削除したいデータのID(複数ある場合はカンマで区切る) HONMON 出力ファイル

生物学辞典の解説文本体からカラー図版を削除して「HONMON.temp」ファイルに出力するには以下のようにします。

squeeze --delete=D2 HONMON HONMON.temp

これでカラー図版の削除された「HONMON.temp」ファイルが生成されるので、元の「HONMON」ファイルをこれで置き換えれば終わりです。この操作により生物学辞典解説文本体の「HONMON」ファイルは標準132MBから32.2MBまで小さくなります。

sign