メイリオの罫線の効果はバツグンだ!

フォント
[ メイリオの罫線の効果はバツグンだ! ]

メイリオで罫線を使うと図表がスゴいことになります。そもそも等幅フォントではないのだから、という話はさておき。

精神攻撃なニュアンスで、甚だしい影響に至ります。

JIS X 0208 の罫線

Windows の通常描画で JIS X 0208 の罫線を試すと、次のように罫線の高さや太さがマチマチです。フォントの設計通りの行間なのに縦の罫線の上下が繋がらなくて、ダブルパンチです。

画像テキスト
メイリオの罫線素片┌┰┬┐┏┯┳┓
│┃││┃│┃┃
├┸┼┤┣┷╋┫
┝━┿┥┠─╂┨
└─┴┘┗━┻┛

横線が適切と言えない描画になる要因は、二つあります。

座標

アウトラインの座標が、文字によって微妙にズレています。その差は一文字の 2/2048 という僅かなものなのですが、文字サイズによって、ヒンティング命令での丸め処理(四捨五入)の結果が変わる境目を跨いでいます。

メイリオ U+2524「┤」 修正前と修正後
FontForge での 14pt U+2524「┤」のヒンティング結果。左は元の場合、右は座標を修正したプレビュー。

計算上は 10cm 四方の文字サイズで 0.1 mm に相当する誤差です。ヒンティング無しで幾何学的に描画すれば、約 1/1000 の誤差のまま認識困難な濃淡の差です。しかし、ピクセルの境界になるべく合わせるヒンティング命令が災いすると、結果はピクセル単位で約 1/20 と、元の誤差の約 50 倍に膨れあがります。

アウトラインの座標を正しく訂正することは難しくないはずですが、気付かれていないのか修正するべき課題と思われていないのか、令和対応の Version 6.30 でもズレたままです。

ヒンティング

ヒンティング命令も、文字によって処理の内容に差があります。

メイリオ U+2523「┣」と U+2537「┷」
FontForge での 14pt のヒンティング結果。左は U+2523「┣」、右は U+2537「┷」。

ヒンティングという用語にはなっていますが、TrueType ではレンダラに 手掛かり を与えるものではなく、各座標をグリッド(ピクセルの境界)にフィットさせる、座標の移動処理/字形の変形処理 の小さなプログラムです。文字毎に組み込まれた小さなプログラムの差が、同じ太さ/高さの横線の座標を、異なる座標に移動/変形させています。

罫線は通常の文字とは性格が違うので、無調整で ttfautohint に掛けても、文字サイズによって似たようなことが起きます。変にズレるよりは、ヒンティング無しで若干滲んだり文字の境界で薄れる方が、まだ仕方がないと納得されやすいと思うのですが、メイリオのヒンティング設計のポリシーとは異なるようです。

MacType でヒンティングを無効化している環境では心配無用なのですが、うっかり普通の環境で表示されると危険です。

PC-98 の罫線

U+2500 ~ U+257F の罫線素片の全般を見渡すと Unicode での罫線素片 と同様の扱いが出来ない文字があります。

二重罫線
二重罫線の内、「╞═╪╡ 」だけが太く広い罫線。
円弧罫線
円を描くように繋がる「╭╮╯╰」が太い罫線。
名称 BOX DRAWINGS LIGHT ARC DOWN AND RIGHT などの通り細い罫線が正解。
三重破線/四重破線
三重破線「┄┅┆┇」と四重破線「┈┉┊┋」が、破線の具合が異なる六重破線。

PC-98における罫線素片 の「1バイト罫線素片」を想定しているのかも知れませんが、破線以外は意匠の差を超える非互換性を感じます。

二重罫線と円弧罫線の組み合わせを欧文等幅フォントと比較すると、次の通り。

欧文等幅フォントメイリオ
╭╥┬╮╔╤╦╗
│║││║│║║
├╨┼┤╠╧╬╣
╞═╪╡╟─╫╢
╰─┴╯╚═╩╝
╭╥┬╮╔╤╦╗
│║││║│║║
├╨┼┤╠╧╬╣
╞═╪╡╟─╫╢
╰─┴╯╚═╩╝

残念な具合に整合がとれていません。

ちなみに、游ゴシックや游明朝でも、不足する二重罫線を除いて同様のデザインです……。

おわりに

元々不正確なデータでは、どれほど緻密に計算しても不正確な結果を防げません。誤差の認識が甘い点では、1000 の 2/3 という意図 で「正確に 667 ユニット固定字幅に設定」と説明する プロ仕様の Source Han Code JP と似ている気がします。

確かに、細かい事を気にしていたらフォントはいつまで経っても出来上がりません。しかし、最初から計算上の矛盾を抱えないように考えて設計する事も、同じように重要なことです。

何しろ、フォントレンダラは、フォントのデータに寸分の狂いがないのかを検証する立場ではないのですから!

コメント

タイトルとURLをコピーしました