web-dev-qa-db-ja.com

Mac OS Xでフォントが「太い」ように見えることがあるのはなぜですか?

サスペンドから再開すると、Mac OSXのフォントが通常より「太く」見えることがあります。残念ながら、今のところMacbook Proに比較のための「正常な」動作を表示させることはできません。昨日も、今日も異常です。 「通常」と思われるもののスクリーンショットを取得できる場合は、それらを追加します。

これを「修正」するのはランダムです。私は外部モニターを使用していますが、プラグを抜いてから再び差し込んだり、電源を切って入れ直したりすることもできます。ディスプレイが接続されている(または接続されていない)場合、ディスプレイの検出が機能することがあります。ログアウトまたは完全に再起動することが必要な場合があります。

使用したディスプレイ:

  • Macbook Pro 15 "内蔵ディスプレイ
  • Dell 27 "LCD(2009モデル)

私がこれを目にするソフトウェアは、少なくとも最も顕著に:

  • Firefox(下のスクリーンショット)
  • iTerm
  • 物事
  • MacIrssi (下のスクリーンショット)

Mac OS X10.5.8を使用しています。

Inconsolata 16ptのMacIrssiからの「異常な」ビュー。

abnormal (Macirssi)

Firefoxからの「異常な」ビュー。

abnormal (Firefox)

一時停止から「太った」状態に戻った後、ようやく元に戻すことができました:-(。

normal (Macirssi)

そしてFirefoxの「通常」:

normal (Firefox)

19
jtimberman

画像を拡大すると、問題が明らかになります。

Zoomed in screen shot of "fat" fonts, showing colored pixels
Zoomed in screen shot of "skinny" fonts, showing greyscale pixels

ご覧のとおり、スキニーバージョンは完全にグレースケールですが、ファットバージョンにはわずかに赤みがかったピクセルとわずかに青みがかったピクセルがあります。

これは、 サブピクセルアンチエイリアシング が原因で発生します。 LCD画面には、実際には任意の色の正方形のピクセルが含まれていません。代わりに、赤、緑、青の3つの細い長方形の要素があります(以下のWikipediaの画像)。

Pixel Patterns on various displays

フォントをアンチエイリアシングする場合、単にグレーの色合いを使用する代わりに、3つの色のそれぞれの強度を変更して、グレーの色合いでアンチエイリアシングするだけで達成できる水平解像度の3倍でレンダリングできるようにします。私が提供した拡大写真は、実際にあなたが見ているものを表すものではありません。代わりに、ピクセルの形状と配置により、フォントはかなり滑らかに見えるはずです。次のようにレンダリングする方が正確です。

Example of Sub-Pixel anti-aliased text

つまり、フォントがサブピクセルアンチエイリアシングでレンダリングされている場合と、通常のアンチエイリアシングでレンダリングされている場合があります。使用されているサブピクセルアンチエイリアシングアルゴリズムは、白い背景の黒いテキスト用に最適化されていると思います。これは、黒い背景の白いテキストとして表示されたときにテキストが少し「太い」ように見える理由を説明している可能性があります。

一方、それは単に実際のフォントのより正確なレンダリングである可能性があります。同じフォントの適切に拡大されたバージョンを見ると、上記の「スキニー」バージョンよりも少し大胆でかすかに見えます。

Example text at higher font size

2つのバージョン間を行ったり来たりする理由は、おそらく2番目のモニターが原因です。 OSがこれをいつ決定するか、またはどのように決定するかは正確にはわかりませんが、サブピクセルレイアウトが不明なLCDを検出する可能性があります。ピクセルのレイアウトがわからないため、より安全な標準のアンチエイリアシングに対応します(サブピクセルアンチエイリアシングは、LCDのレイアウトが間違っていると、非常に奇妙に見える可能性があるため)。どういうわけか、時々取得しているようです。アプリケーションが特定のレンダリングモードで開始されると、アプリケーションを終了して再起動するまで変更されないと思います。これにより、理由が説明されます。不安定な動作が見られます。どのような動作が得られるかは、外部モニターを接続するタイミングと、アプリケーションを起動するタイミングによって異なります。

2番目のLCDを使用するかどうかに関係なく、常にスキニーフォントを使用するかどうかに関係なく、これをすべてのアプリケーションで一貫性のあるものにしたい場合は、外観システムでフォントスムージングをオフにするだけです。設定パネル:

Highlighting "Use LCD Font Smoothing When Available" in Appearance system preference panel

もちろん、その後、どこでもサブピクセルアンチエイリアシングが失われます。 John Rudyが指摘しているように、次のようにすることで、よりきめ細かい制御を行うことができます defaultsプログラムを使用して手動でレベルを設定する手順 ;または、まだSnow Leopardを使用していない場合でも、システム環境設定でよりきめ細かいコントロールを使用できるはずです。

21
Brian Campbell

アンチエイリアシングの違いのように見えます。これは、サスペンド/レジュームと外部モニターの接続/切断でこの動作が見られる場合に意味があります。お使いのDellモニターが、システムで使用されているアンチエイリアシングモードの変更をトリガーしている可能性があります。

Mac OS Xのバージョンによっては、[外観システム環境設定]ウィンドウでシステムが使用するフォントスムージングを制御するオプションがある場合があります。 (Snow Leopardの時点では、「LCDフォントスムージングが利用可能な場合)を使用する」チェックボックスのみが表示されます。これは、古い「自動-メインディスプレイに最適」設定に対応しているようです。)

Terminal.appのシステムプロパティを介してこれを構成できます。 この記事 詳細を説明します。以下に要約します。

フォントスムージングには5つの設定があります。

  1. 自動-メインディスプレイに最適
  2. 標準-CRTに最適(オプション1
  3. ライト(オプション2
  4. 中-フラットパネルに最適(オプション3
  5. 強い(オプション4

自動の世界にいなくなるようにこれを厳密に制御するには、Terminal.appを使用してシステム全体のプロパティを変更します。これを行うと、ディスプレイの切り替え(モニター間で、おそらくサスペンド/レジューム用のスクリーンセーバー)が設定に影響を与えることはないはずです。

Terminal.appに、次のように入力します。

    defaults -currentHost write -globalDomain AppleFontSmoothing -int 2

変更 2(上記のリストから、テキストの後にオプション番号を使用して)最も好きなオプション。

12
John Rudy

CRTを使用している場合、CRTが完全にウォームアップされるまでの時間で、色、明るさ、アスペクト比の歪みが予想されます。どのモニターを使用していますか?

0
Charles Stewart