メニュー |
ようこそ! Kazuhiro's blog
木曜日, 9月 18 2025 @ 05:04 午後 JST さざなみフォントのGRAVE ACCENTについて![]() ![]() 先程、mule-jaに「intlfontsに含まれているビットマップフォントのGRAVE ACCENT (U+0060)の字形がおかしい」という報告をしたのですが、実はさざなみフォントでもおかしいという話です。 左の図の上段はさざなみ明朝で4ポイントから順番に1ポイントずつ大きくしてGRAVE ACCENTを並べたものです。 表示はOpenOffice.org Writerでズームを100%にして行っています。 大雑把に3種類くらいの字形が含まれているのが分かると思います。 下段はさざなみゴシックで同じ事をしてみたものです。 明朝のように明らかに字形が変わったりはしませんが、字形がGRAVE ACCENTとはなっていない事が分かると思います。 ![]() 最後に、IPA明朝で同じ事をしてみたものです。 こっちはちゃんとGRAVE ACCENTになっています。 OALD7の圧縮について![]() 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を公開![]() OALD7のCD-ROMを見ていましたが、どうも期待するようなインデックスは存在しないような気がしてきた(Jammingでもインデックスを作成しないといけないようだし)ので変換ツールをもうちょっとましにして公開してみました。こっちのサイトにはまだ準備していません。 といっても字下げやらを指定しやすくしただけで、あんまりちゃんと調整していません。本家のブラウザと比べてこう見えて欲しい等ありましたら、字下げとか改行に関してはある程度は対応できるかもしれません。それから、Lookupとeblookで使用する場合は20070806以降をお薦めします。 (追記) こっちのサイトにもページを用意しました。 |
新着情報記事-コメント 最近 2 日-トラックバック 最近 2 日- |
Copyright © 2025 Kazuhiro's blog 本ページのすべての商標と著作権はそれぞれの所有者に帰属します。 |
Powered By Geeklog ページ作成時間: 0.03 秒 |