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


19

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

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

使用されるディスプレイ:

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

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

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

Mac OS X 10.5.8を使用しています。

Inconsolata 16ポイントのMacIrssiからの「異常な」ビュー

異常(Macirssi)

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

異常(Firefox)

最後にスイッチを戻すようにしましたが、サスペンドから再開して「ファット」に戻りました:-(。

ノーマル(Macirssi)

Firefoxの「通常」:

通常(Firefox)


フォントを通常の状態に戻すにはどうすればよいですか?リブート?
スティーブンジェニングス

これまでランダムでした。時々ディスプレイを検出すると、外部モニターを使用したり、オン/オフを切り替えたり、プラグを抜き差ししたりするときに動作するため、この質問をしています:-)
jtimberman

@Arjan、投稿を更新しました。今は「異常」です。
jtimberman

1
「異常」バージョンのスクリーンショットを追加できますか?
ブライアンキャンベル

彼らはより幸せであり、Appleでよりくつろいでいるので...そのため、彼らは快適な太さをやめて、「それをすべてたむろさせて」います。そしてそれは...マックルック太っ上の理由一部のフォントだ

回答:


21

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

「脂肪」フォントのスクリーンショットを拡大して、色付きのピクセルを表示
「スキニー」フォントのスクリーンショットを拡大し、グレースケールピクセルを表示

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

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

さまざまなディスプレイのピクセルパターン

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

サブピクセルアンチエイリアステキストの例

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

一方、実際のフォントをより正確にレンダリングするだけの場合もあります。同じフォントの適切にスケールアップされたバージョンを見ると、上記の「スキニー」バージョンよりも少し太く、かすれが少なく見えます。

大きいフォントサイズのテキストの例

2つのバージョン間で切り替えを行う理由は、おそらく2番目のモニターが原因です。OSがいつこれを決定するのか、どのように決定するのかは正確にはわかりませんが、未知のサブピクセルレイアウトのLCDを検出する可能性があります。ピクセルのレイアウトがわからないため、より安全な標準のアンチエイリアシングを使用します(サブピクセルのアンチエイリアシングは、間違ったレイアウトでLCDに表示されると非常に奇妙に見える可能性があるため)。どういうわけか、一方の決定を下すこともあれば、他方の決定を下すこともあるようです。アプリケーションが特定のレンダリングモードで起動されると、アプリケーションを終了して再起動するまで変更されないため、異常な動作が発生する理由を説明できます。

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

外観のシステム環境設定パネルで「LCDフォントスムージングを使用可能な場合は使用する」を強調表示

もちろん、サブピクセルのアンチエイリアスはどこでも失われます。ジョン・ルディが指摘するように、defaultsプログラムを使用して手動でレベルを設定するための指示に従うことでよりきめ細かな制御を得ることができます。または、まだSnow Leopardを使用していない場合は、[システム環境設定]でさらにきめの細かいコントロールを使用できます。


参考までに、「使用可能な場合はLCDフォントスムージングを使用する」のチェックを外すと、ラップトップディスプレイで最高の結果が得られます。
jtimberman

12

アンチエイリアシングの違いのように見えますが、サスペンド/レジュームおよび外部モニターの接続/切断でこの動作が見られる場合に意味があります。お使いの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最も好きなオプションに変更します(上記のリストから、テキストの後にオプション番号を使用します)。


素晴らしいリファレンス!その「代わりにLCDに依存して、どの設定を使用すべきかを報告する」ことは、実際に突然の変更を引き起こす可能性があります。
アルジャン

Terminal.appではなくiTermを使用していますが、固定幅のスクリーンショットはMacirssiのものです。
jtimberman

Snow LeopardではなくLeopardを使用しているため、このオプションは[システム環境設定]-> [外観]で利用できます。「標準... CRT」は実際にはMacbookディスプレイで「正常」に見えますが、明日オフィスに戻ったときに外部LCDを確認するのを待つ必要があります。
jtimberman

2
@jtimberman、私はTerminal.appではなくiTermを使用していますが、 Johnから与えられたコマンドはTerminalだけには影響しないことに注意してください。iTermを使用して実行することもできます。
アルジャン

0

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


内部Macbook LCDディスプレイ。私はもうCRTを所有していません。
jtimberman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.