Macでフォント描画のアンチエイリアシングが効かない問題を解決する
会社から仕事用マシンとしてMacBook Pro (13 Early 2011)が支給されて、非常に快適に仕事をしている。今までのWindows機は外部モニタを2枚つないで本体は閉じていたのだが、Macになってからは本体のモニタ+外部モニタ構成にしたので、机の上もだいぶ省スペースにできた。
ところが、更なる快適さを求めてプライマリモニタを本体から外部モニタに変えてみたら、微妙な落とし穴にハマってしまった。
Twitterで嘆いたら幸いにもすぐ反応をいただき、しかもそれがドンピシャ。見事翌日には解決したので、経緯をメモとして残しておく。
現象
フォントのアンチエイリアシングがおかしい。かかってはいるが、なにかかすれている感がある。
こんな感じ。
いろいろ検証した結果、「外部モニタが接続され、そのモニタがプライマリ(メニューバーがあるほう)に指定されている」状態で起動したアプリケーションがこの現象に見舞われるようだった。
外部モニタを外した状態で起動したアプリケーションはきちんとアンチエイリアシングされ、そのあと外部モニタを接続しても問題なかった。
Twitterでのやりとり
@kwappa アンチエイリアスを効かさないデバイス(CRTとか)と誤認識してるのかもしれませんね。外部モニタメインで起動時に「システム環境設定->一般->使用可能な場合はLCDで滑らかな文字を使用」にチェックが入ってますか?
— tkono1 (@tkono1) August 23, 2011
@tkono1 まさにこれでした!ありがとうございます!あとでblogかきます。いやー助かった。
— かっぱ (@kwappa) August 24, 2011
ジャストミートな情報をいただいたので早速試してみる。
解決方法
ターミナルで以下を実行する。
% defaults -currentHost write -globalDomain AppleFontSmoothing -int 1
リンク先を読んでみると…
- Snow Leopardのころからあるバグだよ
- サードパーティの液晶モニタをCRT(ブラウン管モニタ)と誤検出してしまうよ
- Dell, Samsung, LG, HP, EIZO, and Lenovo
- アンチエイリアシングの度合いを決める数字のデフォルトを変更すればいいよ
- 0 : Standard (CRT向け)
- 1 : Light
- 2 : Medium (液晶向け)
- 3 : Strong
リンク先の指示では「-int 2」と書かれていたが、Emacs + Rictyの組み合わせだとちょっと効き過ぎのような気がしたので「-int 1」を指定してみた。
この辺はやってみて好みで決めればいいのではなかろうか。
まとめとLinks
twitterで嘆いたらあっという間に解決するという大変幸運な事例であった。@tkono1さん、ありがとうございました!
10.6: Re-enable LCD font smoothing for some monitors – Mac OS X Hints
http://hints.macworld.com/article.php?story=20090828224632809