2012-09-01 10 views
5

GeckoおよびWebkitブラウザは、text-rendering: optimizeLegibilityを介して合字の描画をサポートしています(フォントには合字、たとえばCalibriが必要です)。font-sizeは合字のレンダリングに影響しますか?

MDN pageは、サイズが20px以上のテキストのみが合字を取得すると述べています。 my own researchによると、これは当てはまりません:

  • Firefoxはデフォルトで合字をレンダリングします。
  • text-rendering: optimizeLegibilityを指定した場合、Chrome(& Safari)は合字をレンダリングします。
  • 両方のエンジンは、フォントサイズを気にしないようです。

ここに何か不足していますか?それとも、MDNのページで間違っているのですか?

[編集]追加読書:Smashing Magazineの“A Closer Look At Font Rendering”

答えて

4

Firefoxは、フォントのレンダリングパスを選択するかどうかを決定するために使用する値を調整できるように、優先度browser.display.auto_quality_min_font_sizeをサポートしています。しかし、現在のバージョンのFirefoxでこれが引き続き採用されている唯一の部分は、小さなフォントサイズまたは明示的なtext-rendering: optimizeSpeedがUniscribeではなくGDIを使用してレンダリングするWindows XP上です。

Thunderbirdは、何らかの理由でその設定の値をゼロに設定することに注意してください。

2

実際には、MDNページでは、20px以上のテキストではligaturesがどちらかの方法で取得され、optimizeLegibilityでオーバーライドされます。

より一般的には、合字を使用するかどうか(および任意の2つの特定のグリフの間の特定のカーニングなどの読みやすさに影響を与える他の要因)は、サイズだけでなくフォントからフォントにも変化します。バージョンでかなり急速に変化しているのを私が見ても驚くことはありません。確かに、基礎となる技術はまだ立っていません。

2

あなたの分析は正しいです。追加の観察:

明らかに、CSS3 Fontsに記載されているfont-variant-ligaturesプロパティは実装されていません。代わりに、Firefoxは接頭-moz-で、低レベルfont-feature-settingsプロパティを実装して、あなたは実際に要素に

-moz-font-feature-settings: 'liga' 0 

を設定することで、合字を適用してFirefoxを防ぐことができます。

特定の箇所に合字が表示されないようにするには、結び付く可能性のある文字の間にZERO-WIDTH NON-JOINER(ZWNJ)を挿入できます。 fiの代わりにf‌iです。

関連する問題