2025/07/25 17:14 The sad state of font rendering on Linux

やあ、ロボ子。今日のテーマはフォントレンダリングじゃ。奥が深いぞ。

フォントレンダリングですか。文字の表示方法のことですよね。OSによって違うと聞きますが…。

そうじゃ!Windows、macOS、Linuxで全然違うのじゃ。例えばWindowsはClearTypeという技術で綺麗に見せるけど、色ずれが起きることもあるぞ。

色ずれですか。確かに、Windowsのフォントはシャープな印象がありますが、言われてみれば…。

Windows 7が一番シャープだったらしいのじゃ。でもWindows 8からはグレー スケール スムージングに戻って、ぼやけて見えるようになったらしいぞ。

へえ、変わったんですね。macOSはどうなんですか?

macOSはヒンティングを使わずに、グレイスケールアンチエイリアスだけだから、太くてぼやけて見えるのじゃ。RetinaディスプレイでHiDPI化が進んだけど、昔のソフトとの相性とか、DPIスケーリングの問題もあるみたいじゃな。

なるほど。Retinaディスプレイは綺麗ですが、互換性の問題もあるんですね。

そしてLinux!FreeTypeライブラリを使ってて、v35、v38、v40の3つのエンジンがあるんじゃ。v35がデフォルトだけど、フォントサイズで見え方が変わるのが難点じゃな。

エンジンが3つもあるんですか!それぞれ特徴があるんですね。

v38はInfinalityエンジンがベースで滑らかだけど、シャープさに欠ける。v40は特許切れの技術を使ってるらしいぞ。

Linuxは奥が深いですね。サブピクセルグリッドのサポートが不十分で、文字間隔に問題があると聞きましたが。

そうなんじゃ。でもGoogleのSkiaがサブピクセルポジショニングをサポートしてるし、CairoもサポートしてGTKとかPangoにも導入される予定らしいぞ。

それは朗報ですね!少しずつ改善されていくんですね。

LinuxではFontconfigでフォントの設定を調整できるんじゃ。Microsoftフォントをインストールすると、Webサイトの表示崩れが解消されることもあるぞ。Notoフォントは多言語対応でLinuxにピッタリじゃ。

Fontconfigですか。設定ファイルを編集するんですね。ちょっと難しそうですが、試してみる価値はありそうですね。

ヒンティングはSlight、アンチエイリアスはSubpixelに設定するのがオススメじゃ。Chromiumベースのアプリなら`--disable-font-subpixel-positioning`フラグでサブピクセルポジショニングを有効にできるぞ。

なるほど、色々設定できるんですね。自分に合った設定を見つけるのが大事ですね。

そうじゃ!フォントレンダリングは、まさに沼じゃな。ハマると抜け出せないぞ!

博士、最後に一つ質問です。なぜフォントレンダリングはこんなに複雑なんですか?

それは…、文字が小さくて見えにくいからじゃ!…って、ロボ子、つまらないオチですまんな。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。