KANOU Hiroki
kanou****@khdd*****
2003年 11月 24日 (月) 14:30:45 JST
狩野です。いまづさん、ご確認ありがとうございます。 [Mplus-fonts-dev 101] のいまづさんのテスト結果 > 1.PfaEditを通常通りコンパイルしたものでkochi-gothic-substitute.ttfを開き、 > Kochi-Gothic.ttfを出力(保存ではなく) > 2.tottf.cの2851行(・・・だと思いますが)をavg1/cnt1に修正して > コンパイルしたものでKochi-Gothic2.ttfを出力 > > これらをWindowsXPにインストールしてメモ帳、Mozilla、IEで表示確認しましたが、 > 1.のほうは日本語部分がスペーシング(というかフォントの幅)が > リンク先3、4番目のスクリーンショットのようになりました。 によると、WindowsXP では、日本語フォントの表示の際に OS/2 テーブルの avgCharWidth の値を見て送り幅を決めているようですね。 ところで、SetPanose() で固定幅を指定してから出力したフォントを MS Font Validator にかけると、 「OS/2 テーブルの Panose[3] の値が 9 (Monospaced) なのに、 post テーブルの isFixedPitch の値が 0 になっている」 というエラーメッセージが出てきます。 どうやらこの 2 つは揃っていなければならないようです。 というわけで、以下のパッチが必要のようです。 (この変数は、tottf.c の 3567 行目で at->isfixed にコピーされ、 それが 2513 行目で post テーブルに書き出されます。) --- tottf.c~ Sun Nov 9 12:49:49 2003 +++ tottf.c Mon Nov 24 14:23:39 2003 @@ -4422,7 +4422,8 @@ at->gi.onlybitmaps = format==ff_none; at->gi.flags = flags; at->gi.bsizes = bsizes; - at->gi.fixed_width = CIDOneWidth(sf); + at->gi.fixed_width = (sf->pfminfo.pfmset) ? (sf->pfminfo.panose[3]==9) : + CIDOneWidth(sf); at->isotf = format==ff_otf || format==ff_otfcid; at->maxp.version = 0x00010000; 狩野 宏樹 <kanou****@khdd*****>