M+フォント生成スクリプトの修正
漢字用に生成される中間フォントファイルの形式をTTFからSFDに変更しました。
中間のファイルをTTFにしてしまうと、中間ファイルにOS/2テーブルが書き出されます。その後中間ファイルを開いて漢字以外のグリフを追加しても、OS/2テーブル中のコードページ情報、Unicodeレンジ情報が適切に更新されません。中国語のフォントとしか認識されなかったり、フォント名が表示されなくなったりするようです。中間形式をSFDにすればOS/2テーブルが存在しないため、最終の出力時に正しいOS/2テーブルが作られると判明したので、修正しました。
diff --git a/build-ttf.py b/build-ttf.py index 24a45b1..9a09d1f 100644 --- a/build-ttf.py +++ b/build-ttf.py @@ -490,7 +490,7 @@ if 'kanji' in modules: c.vwidth = em else: f.close() - f = fontforge.open('../../%sk/%s/%sk-%s.ttf' + f = fontforge.open('../../%sk/%s/%sk-%s.sfd' % (kfontname, weight, kfontname, weight)) modules.remove('kanji') @@ -539,4 +539,9 @@ set_alt_tables() set_fontnames() set_os2_value() -f.generate(ttfname, '', ('short-post', 'opentype', 'PfEd-lookups')) +if kanji_flag: + f.save('%sk-%s.sfd' % (kfontname, weight)) + open(ttfname, 'w').close() +else: + f.generate(ttfname, '', ('short-post', 'opentype', 'PfEd-lookups')) +