VLゴシックのsynthetic emboldeningを抑制して、表示に高級感を。
Free な OS の標準的な日本語フォントとして Vine Linux をはじめ様々なディストリビューションに採用されている「VL ゴシック」。字体の見やすさなどから、徐々に愛好者を増やしているようなんだけど、前々から気にくわなかったのがこれの太字。小さい文字ではそれほど気にならないにしても、大きい文字では、なんか滲んだような表示となってしまっていて、非常に見苦しいのだ。
一体フォントの作成者は何を思ってこのようなボールド体を作成したのだろう、と思ってしまうかもしれないが、実際には VL ゴシックにはボールド体の字形が用意されておらず、X アプリケーションが文字のレンダリングに利用している Xft が、動的にボールド体を普通の字形から合成して、グリフを補完してしまっているのだ。 (synthetic emboldening)
Xft は、指定されたフォントをどのようにレンダリングするか、という設定を取得するのに fontconfig というライブラリを使用している。なので、これは、fontconfig の設定を変えることで抑制することができる。
具体的には、~/.fonts.conf に次のような内容を書いておく。
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="font"> <test name="family"> <string>VL Gothic</string> <string>VL PGothic</string> </test> <test name="pixelsize" compare="more_eq"> <double>20</double> </test> <edit name="embolden" mode="assign"> <bool>false</bool> </edit> </match> </fontconfig>
これは
- フォント名が「VL Gothic」もしくは「VL PGothic」
- フォントのレンダリング時の大きさが 20 ピクセル以上になる
場合に synthetic emboldening を抑制する、という設定だ。20 ピクセルという数字にはあんまり根拠はなく、これ以上でかい場合に見苦しいのかな、という感覚で決めた。
結果:
個人的には満足いく状態になったと思う。