freetype の疑似ボールド表示で不具合
09 Aug 2006

「とおりすがり」の方からご指摘と参考画像をいただきました。
freetype によるレンダリングで表示された cvs 版 M+ P Regular 48pt(上図 A)に太字化の命令を与えると、一部のグリフ表示に不具合が生じるとの事(下図 B)です。

例によって自分には技術的な知識が無いので、この状況を Illustrator 上で再現してみました。

最初に M+ P Regular 48pt で同じ文字群を表示(ex. 1)、画像 A と同じ状態で描画されています。
次に個々の文字の塗り設定として、各アウトラインに 2 pt の線幅を持たせます。線幅はアウトラインの内側と外側に均等に広がりますので、各文字は 1pt ずつ周囲が太くなり、文字天地、左右共に 2 pt 大きくなります(ex. 2)。
このままでは各々の字間が 2 pt ずつ狭くなってしまいますが、freetype による表示 A と B を見比べてみると、字間そのものも拡大されている事が分かります。Illustrator のトラッキング設定ではフォントサイズ(pt)を 1000 等分した数値で指示しますので、字間が狭くなった数値 2 pt の倍数 4 pt 分の設定値 83.33(4*1000/48)を与えてみたところ、画像 B とほぼ同じ全長になりました(ex.3)。
細くなってしまった G に関しては、2 pt に設定したアウトラインの線幅に「白」の色設定を施し、文字の周囲を 1 pt ずつ覆い隠す状態にしてみました(ex.4)。これで画像 B とほぼ同じ表示となります。
アウトラインの線幅に別の色を設定し、ウエイトの変化を分かりやすくしてみました(ex. 5)。
以上から、freetype で M+ P フォントの文字を疑似ボールド化させた場合、一部のグリフ(今回の例では G)において太字効果が反対方向に作用している様に思われます。その原因が freetype と M+ フォントのどちらにあるのか分かりませんが、G の直接的な元データ(mplus_outline_fonts/work.d/splitted/regular/latin_proportional1/u0047.svg)を確認してみても、閉じ忘れたパス、重複したポイントなどのミスは見つかりませんでした。
同様の事例などをご存知の方がいらっしゃいましたら、ぜひ下記の連絡先までお知らせください。よろしくお願いいたします。
M+ C の見直し #2
09 Aug 2006
![[ M+ C ]](http:/mplus-fonts.osdn.jp/weblog/images/mplus_c-060809.png)
上段が M+ C Medium、下段のグレー文字が M+ P Medium です。