[M+ OUTLINE FONTS 340] 欧文プロポーショナルの検討

Back to archive index

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*****>



mplus-fonts-dev メーリングリストの案内
Back to archive index