KANOU Hiroki
kanou****@khdd*****
2005年 1月 19日 (水) 23:00:41 JST
狩野です。すみません、スケールするよりも上手い方法がありました。 http://mplus-fonts.sourceforge.jp/cgi-bin/blosxom.cgi/2005/01/19#mplus_fonts-050119-2 を読んで気づきましたが、読み込む側のフォントを最初から仮想ボディに 合わせてアセントとディセントを設定しておけばいいんですね。 FontForge は EM = ascent+descent と思っているので、取り込む図形の 高さに合わせてこの二つを設定しておけば望む大きさで取り込めます。 フォントの作成は、概略以下のようにすれば行えます。 和文フォントに欧文をマージしているので、欧文フォント側のアセント・ ディセントの設定は最終的なフォントファイルには残りません。 ここでは、スクリプト1個でやっていますが、個別の部分フォント作成と それらのマージ・出力は分けた方がすっきり書けると思います。 height=150; descent=40 // 欧文の高さとベースラインの位置 zenkaku=100; bottom=25 // 和文の仮想ボディとその底部の位置 ascent = height-descent scale = 1000.0/zenkaku New(); ScaleToEm(ascent*scale,descent*scale) # 欧字の取り込み処理 # 欧字の字幅設定 Save("mplus-ascii.sfd"); Close() New(); ScaleToEm(1000-bottom*scale, bottom*scale) # 和字の取り込み処理 Import("mplus-ascii.sfd") // 欧字フォントとマージ Import("mplus-skeleton.sfd") // 無い文字をスケルトンで補う # ファイル名などの設定 Generate("mplus.ttf"); Quit()