[M+ OUTLINE FONTS 431] Re: [M+ OUTLINE FONTS 430] Re: 英数字の kerning 設定

Back to archive index

KANOU Hiroki kanou****@khdd*****
2005年 12月 10日 (土) 11:12:45 JST


狩野です。

> > 昔からの 'kern' テーブルが出力されていないためでした。
> > build-ttf.pe を修正しました。
> 
> ありがとうございました。
> 早速 make し直してみたところ「Te」では「e」が「T」の下に潜り込んで
> いないために間延びしていたり、「(j」では「(」と「j」の下先端部分が
> 接っしてしまったりしています。
> 全ての組合せを確認したわけではありませんが、どうやら kerning 設定が
> まだ反映されていないようです。

私が確認した限りでは Windows (Word) でも、Mac OS X (TextEdit) でも
カーニングが有効になっています。ひょっとすると、新しいバージョンの
OS X では効かなくなっているのかもしれません。

FontForge のマニュアルにこんな事が書いてあります。

	OS X 10.4 から、Apple は OpenType テーブルが存在する時はそれを
	使用し、AAT テーブルを無視するようになりました。

今回の場合、GSUB テーブルがフォントに入っているので、'kern' テーブルが
無視されているのではないかと思います。

scripts/build-ttf.pe の

	Generate(_ttfname, "", 0x84) 

という行を

	Generate(_ttfname, "", 0x94)

としてみるとどうでしょうか? それで問題なくいくようであれば、ソースを
修正しようと思います。

> 固定幅内の左右バランスは、実際にその幅の中に文字を入れて、
> 目でみた感覚的な判断で決定する必要があります。
> なので、全角文字と同様に数字グリフのみ固定幅の長方形を設定したいのです。
> # 左サイドベアリングの数値は自動的に検出しているのですよね。

取り込んだ瞬間には左サイドベアリングは SVG どおりの設定値になっていて、
その後 bearings に書かれた設定値に変更されています。そこで、

・L (左サイドベアリング) の値を相対値で設定する
・R (右サイドベアリング) の代わりに W (幅) を設定する

記述法を追加することにしようと思います。それにより、bearings の値は
以下のように書き換えることになるでしょう。(現在最も広い '8' の字幅より):

0    +0 w730    +0 w717    +0 w703    +0 w690    +0 w677    +0 w663    +0 w650
1    +0 w730    +0 w717    +0 w703    +0 w690    +0 w677    +0 w663    +0 w650
2    +0 w730    +0 w717    +0 w703    +0 w690    +0 w677    +0 w663    +0 w650
3    +0 w730    +0 w717    +0 w703    +0 w690    +0 w677    +0 w663    +0 w650
4    +0 w730    +0 w717    +0 w703    +0 w690    +0 w677    +0 w663    +0 w650
5    +0 w730    +0 w717    +0 w703    +0 w690    +0 w677    +0 w663    +0 w650
6    +0 w730    +0 w717    +0 w703    +0 w690    +0 w677    +0 w663    +0 w650
7    +0 w730    +0 w717    +0 w703    +0 w690    +0 w677    +0 w663    +0 w650
8    +0 w730    +0 w717    +0 w703    +0 w690    +0 w677    +0 w663    +0 w650
9    +0 w730    +0 w717    +0 w703    +0 w690    +0 w677    +0 w663    +0 w650

+0 は、左サイドベアリングの相対移動量が 0 である (SVG の設定をそのまま
使う) ことを表します。これを例えば +1 と設定すると、SVG の設定値よりも
出力フォントでは 1 ユニットだけ右にずらされることになります (逆に、左に
1 ユニットずらしたい時には +-1 と書いてください)。

w730 は、R の代わりに W を指定し、730 ユニット に設定することを意味します。
これも相対値を指定できます (w+0 とか w+1 とか w+-1 とか) が、初期値は SVG
で指定した幅でなく全角 (1000 ユニット) なので、ほとんど役に立たないでしょう。

これらの値にも charspaces で設定された各ウェイトごとの追加スペースが
左右に付け加えられて、若干空き気味になることにご注意ください。

例えば、thin は以下のようにして設定されます。
	w650 → 650 ユニット
	98% に縮小 → 637 ユニット
	左右に 12 ユニットずつ追加 → 661 ユニット

この表記法と初期設定で問題ないでしょうか。

> > 失礼しました。ごく最近の拡張文法をうっかり使ってしまいました。
> > 10/28 版で動くように直しました。

> ごめんなさい、先のメールを送信した後、もしやと思い最新版の
> バイナリ 20051205 で make してみたところ、ちゃんと動きました。
> 上記 kerning の不具合も、この 20051205 版で確認しています。

12/05 版は大改造の結果、日本語メッセージが一部出て来ない、訳語が
おかしいなどの問題があります (これから直さなきゃいけないのですが)。
プログラム本体の機能にはほとんど違いなく、スクリプトを使う分には
あまり問題にならないと思いますが。

狩野 宏樹  <kanou****@khdd*****>



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