先日「12か国語大辞典の外字マップ」という文章を書いたところ、EPWINGの外字ファイルの解析についてご質問をいただきましたので、それへの回答と自分の備忘を兼ねて、知っていることを簡単にまとめておきます。

外字ファイルのフォーマット

EPWINGの外字ファイルはバイナリフォーマットですが、その気になれば手動で解析することも不可能ではありません。

下の例は、「三修社 12か国語大辞典」を「CDWord-EPWING辞書コンバータ CDW2EPW」でEPWINGに変換したときに生成される16ビット用の外字ファイル「GAI16H00」を16進ダンプしたものの冒頭部分です。

最初の1024バイトは制御領域で、その中に、外字の横と縦のドット数、1番目の文字コード、定義している外字の数が埋め込まれています。それに続く1025バイト目以降が、外字の図形を1文字ごとに定義している部分です。この例では1文字が8ドット×16ドットですから、16バイトが1文字分になります。図形の定義は単純なビットパターンなので、0→□□□□、1→□□□■のように展開すると、カタチが見えてきます。この例では、どうやら1文字目が「æ」、2文字目が「ɔ」のようです。

img

EPWINGはJIS規格にもなっていますので、フォーマットの詳細はJIS X 4081の規格票の「6.8 書籍定義文字パターン」を読むと詳しいことがわかります。JISの規格票は、日本工業標準調査会(JISC)のJIS検索ページや、日本工業の簡易閲覧などで読めます。

こうやって地道に解析すれば外字ファイルの中身を知ることができるわけですが、まあ普通はそんなことやってられませんよね。そこで、hishidaさんのEBDumpの登場です。

EBDumpで外字パターンを調べる

EBDumpは「EPWING / 電子ブック形式の電子辞書の構造を解析するためのツール」で、hishidaさんが無料で公開されているものです。外字ファイルの中身を人間が読める形にダンプしてくれる機能も備えています。

これをインストールして起動し、入力ファイルに外字ファイルを指定します。

img

「テキストダンプ」を押すと、テキストエディタが立ち上がって、次のような内容が表示されます。これで、外字の文字コードと、そのコードが表している図形を簡単に知ることができます。

img

EBPocket for iOS用の外字Unicodeマップを作る

あとは、同じくhishidaさんのEBPocket for iOS Support Pageの「外字Unicodeマップをカスタマイズする」の手順にしたがってplistファイルを作成すれば、外字図形の代わりにUnicodeの文字を表示することができます。

なお、この手順で「for iOS」用のplistを作るだけであれば、「EBWin用の外字定義ファイル(*.map)」を作成する必要はありません。逆に、すでにmapファイルが存在するのであれば、「EBWinの外字定義ファイルを変換して使用する」の手順でmapからplistを生成することができると思われます。私はiPhoneで表示できれば十分なので、いまのところmapの方は作成していません。

※バージョンメモ

  • EBDump 1.28