Kazuhiro's blog
ようこそ! Kazuhiro's blog
金曜日, 3月 31 2017 @ 05:21 午前 JST
 記事を友人にメールする 印刷用画面 

FreePWINGで複数の副本を持つ書籍を作成する

general

現在、oald7-fpwを改造しています。 主な改造点の一つとして、一つの副本を持つ書籍を三つではなく、三つの副本を持つ一つの書籍を生成するようにしました。 FreePWINGはそのような複数の副本を持つ書籍を作る事も考慮されている事に今更ながら気付いたので、その手順を示したメモを公開します。

 記事を友人にメールする 印刷用画面 

さざなみフォントのGRAVE ACCENTについて

general

先程、mule-jaに「intlfontsに含まれているビットマップフォントのGRAVE ACCENT (U+0060)の字形がおかしい」という報告をしたのですが、実はさざなみフォントでもおかしいという話です。

左の図の上段はさざなみ明朝で4ポイントから順番に1ポイントずつ大きくしてGRAVE ACCENTを並べたものです。 表示はOpenOffice.org Writerでズームを100%にして行っています。 大雑把に3種類くらいの字形が含まれているのが分かると思います。 下段はさざなみゴシックで同じ事をしてみたものです。 明朝のように明らかに字形が変わったりはしませんが、字形がGRAVE ACCENTとはなっていない事が分かると思います。

最後に、IPA明朝で同じ事をしてみたものです。 こっちはちゃんとGRAVE ACCENTになっています。

 記事を友人にメールする 印刷用画面 

掲示板の復活

general

最近、ツールに関する質問を受けたりしていたので以前に削除された掲示板を復活させました。 本当はわざわざ掲示板を復活させるほどの分量ではなかったのですが、ない事によって情報が分散しそうな感じなので借り直すことにしました。

今度は消されないように気をつけますので、皆様もお気軽にご利用ください。

 記事を友人にメールする 印刷用画面 

OALD7の圧縮について

general

Oxford Advanced Learner's Dictionary, 7th Editionに付属するOxford Advanced Learner's Compassのデータのうち、圧縮部分に関するメモです。 基本的には先人による解析をトレースしただけです。 圧縮部分も含めて暗号化はされていないので、伸長できれば比較的容易に調べる事が可能だと思います。 ただし、いわゆるidm形式一般にあてはまるものかどうかは分かりません。

本文テキストを例に出します。CONTENT.tdaが圧縮されたデータになります。圧縮されたファイル名に拡張子tdzをつけたファイル名(この例ではCONTENT.tda.tdz)がそのインデックスになります。

圧縮されたデータは、ファイルの末尾にnull文字をつけたものをいくつか結合したもの(以下チャンクと呼びます)をdeflate圧縮し、それを更に結合させて作成されています。ファイル名は別ファイルに収録されます。

インデックスは8バイトが一組で収録されており、その8バイトのうち、先頭の4バイトに圧縮前のチャンクのサイズが、後半の4バイトに圧縮後のサイズがそれぞれリトルエンディアンで収録されています。

本文データのようなテキストファイルを前から順番に取り出すだけの場合、CONTENT.tda.tdzから8バイトずつ読み込み圧縮されたチャンクのサイズを得て、CONTENT.tdaから圧縮されたチャンクを取得します。圧縮されたチャンクはzlibのinflate関数にかけて展開、null文字を区切りとすることで個々のエントリを得ることができます。

n番目のエントリの位置は同じディレクトリのfiles.datに収録されています。テーブル構造は同じディレクトリのconfig.cftを参照して下さい。尚、エントリの位置は圧縮されたチャンクを伸長して結合した場合のオフセットを指しています。 任意のn番目のテキストを得る場合は、CONTENT.tda.tdzに収録された圧縮前のチャンクのデータサイズから目的のテキストが存在するチャンクを決定してデータを取り出します。チャンクをまたいで存在することは無いようです。 テキストの場合はnull文字に当たるまで読み込んでもよいですが、音声・画像のようなバイナリデータの場合は次のエントリのオフセットも取得して伸長後のデータサイズを決定する必要があります。 個々のバイナリデータのサイズは

(n+1)番目のオフセット - n番目のオフセット - 1

のようになります。最後の-1は末尾のnull文字を削る必要がある為です。また、最終エントリについては次のエントリのオフセットがないので例外処理が必要になると思われます。

タグ:OALD7

 記事を友人にメールする 印刷用画面 

oald7-fpwを公開

general

OALD7のCD-ROMを見ていましたが、どうも期待するようなインデックスは存在しないような気がしてきた(Jammingでもインデックスを作成しないといけないようだし)ので変換ツールをもうちょっとましにして公開してみました。こっちのサイトにはまだ準備していません。

といっても字下げやらを指定しやすくしただけで、あんまりちゃんと調整していません。本家のブラウザと比べてこう見えて欲しい等ありましたら、字下げとか改行に関してはある程度は対応できるかもしれません。それから、Lookupとeblookで使用する場合は20070806以降をお薦めします。

(追記) こっちのサイトにもページを用意しました

タグ:OALD7 FreePWING EPWING