hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

EBStudio リニューアル計画(2) Unicode外字自動割り当て

今回のリニューアルの目玉の一つとして考えているのが、Unicode外字の自動割り当て機能である。
ご存知の通り、EPWINGは規格の制定時期が古いために、文字コードJIS X 0208(第一水準、第二水準)しか使用できない。それ以外の文字は外字としてビットマップで定義することになる。
EPWING辞書を自作しようとすると、外字のビットマップを作字する手間が避けられない。EBStudioの場合、次のように外字のビットパターンを指定する外字定義ファイルと、外字コードとunicodeマッピングを定義する外字マップファイルの二つのファイルを用意する必要があった。非常に手間のかかる面倒な作業だ。

外字定義ファイル:




  ##    
  ##    
   #    
   #    
  #     
        
        
        
        
        
        
        
        
        
        
        


        
        
        
        
        
   ### #
  #   ##
 #     #
 #     #
 #     #
 #     #
 #     #
  #   ##
   ### #
        
        


        
        
        
        
        
   ###  
  #   # 
 #     #
       #
       #
       #
 #     #
  #   # 
   ###  
        
        


外字マップファイル:





EBStudioを利用するには、辞書・書籍のソースをEBStudio用のHTMLに変換することと、外字の作成という二つのハードルがあった。実際にはほとんどのユーザは、有志が作成した辞書変換ツールキットの結果をそのまま使っていたのではないかと思う。
今回のリニューアルの目的の一つは、EPWING辞書の自作のハードルを下げることであり、外字作成の手間はどうしても簡略化したかった。
今日ではせっかくUnicodeデファクトになっているのだから、辞書のソースはUnicodeで記述し、Unicode文字集合のビットマップフォントをEBStudioの内部で持てば、外字を作成しなくてもいい。
もちろんUnicodeにない記号を使用したいこともあるので、従来の外字定義ファイル、外字マップファイルも併用できるように残してある。
問題はUnicodeのフォントをどこから持ってくるかだ。OSのフォントを使用することはライセンスの問題でできないので、フリーで使用出来るビットマップフォントとして、電子書体オープンラボで配布されているhexファイルを使用することにした。
/efont/ Electronic Font Open Laboratory

hexファイルとはこのような形式である:

8 16
0020:00000000000000000000000000000000
0021:00000000080808080808080008080000
0022:00006622224400000000000000000000
0023:000000001212127E24247E4848480000
0024:00000000083E4948380E09493E080000

次の画面はPDIC Unicode版の英辞郎から EBStudio 2 で変換したものだが、外字は上記の電子書体オープンラボのフォントから自動作成しており、作字は一切行っていない。発音記号に注目してほしい。

もう一つの目玉の機能として、EBPocketやEBWin4,EBMac用の外字Unicodeマップファイル(.map .plist)も同時に作成される。CATALOGSと同じ場所に外字Unicodeマップを置いておけば、外字をUnicodeで表示するので、何もしなくてもきれいに外字を表示できる。