KANOU Hiroki
kanou****@khdd*****
2005年 1月 5日 (水) 19:43:15 JST
狩野です。皆様、あけましておめでとうございます。 M+ TESTFLIGHT 009 に向けて、欧文プロポーショナルの設定方法を 考えてみました。現状の FontForge の機能で実現可能でした。 幅の設定をする簡単なスクリプトの例です。 Open($argv[1]) while (Strlen(str = AskUser("")) > 0 && (i = Strstr(str, " ")) > 0) charname = Strsub(str, 0, i); str = Strsub(str, i) lbearing = Strtol(str); str = Strsub(str, Strskipint(str)) rbearing = Strtol(str) Select(charname) SetLBearing(lbearing) SetRBearing(rbearing) endloop Save($argv[2]) データファイルは [Mplus-fonts-dev 327] で森下さんが希望されて いた形式とほぼ同じで、 grave 5 6 a 12 14 b 15 10 . のように文字名を書きます。最後にピリオドだけの行を置くのは、 FontForge のバグ対策のためです (問題点は報告済み)。 このスクリプトを使う時は、 fontforge -script input.sfd output.sfd < widths.txt のように、標準入力をリダイレクトして幅データを書いたテキスト ファイルにしてやります。 ところで、いつの頃からか分かりませんが、最近の FontForge を 使って mplus_outline_fonts ディレクトリでビルドしてやると アウトライングリフがほとんど真っ白になる問題点がありました。 これは、eps ファイルの 0 J 0 j 1 w 4 M []0 d *** とある行を 0 J 0 j 0 w 4 M []0 d *** に書き換えてやると黒塗りになることが分かりました。 w は setlinewidth に定義されてまして、線幅 1 で描画していたと いうことです。 現在、FontForge の EPS 取り込み機能は、線幅には対応していても 塗りつぶしには対応していないようです。線幅を 0 に直すのは簡単 なことですが、問題は、それによって画線の太さが(全角の1000分の1) 細くなることです。現在生成されている TTF は、森下さんが公開 されているサンプル画像よりわずかに細いのではないかと思います。 輪郭線の線幅が与える影響については作業中にどう考慮なさって いるか教えて頂けませんか > 森下さん 狩野 宏樹 <kanou****@khdd*****>