21

Sometimes when resuming from suspend, the fonts in Mac OS X look "fatter" than normal. Unfortunately right now I can't get my Macbook Pro to exhibit the "normal" behavior for comparison, it has been abnormal yesterday and today. If I can get screenshots of what I think is 'normal', I'll add them.

"Fixing" this has been random. I use an external monitor, and sometimes unplugging it and plugging back in, or even turning it off and back on has worked. Sometimes with the display attached (or not) detecting displays works. Sometimes logging out or rebooting entirely is what it takes.

Displays used:

  • Macbook Pro 15" built-in display
  • Dell 27" LCD (2009 model)

Software where I see this happen, at least most noticably:

  • Firefox (screenshots below)
  • iTerm
  • Things
  • MacIrssi (screenshots below)

I am using Mac OS X 10.5.8.

"Abnormal" view from MacIrssi with Inconsolata 16 pt.

abnormal (Macirssi)

"Abnormal" view from Firefox.

abnormal (Firefox)

Finally got it to switch back, though after resuming from suspend its back to "fat" :-(.

normal (Macirssi)

And 'normal' in Firefox:

normal (Firefox)

8
  • How do you get the fonts to go back to normal? Reboot? Jan 25, 2010 at 2:29
  • So far it has been random. Sometimes detecting displays does it, when I use my external monitor, off/on, or unplugging and plugging in works, that's why I'm asking this question, I suppose :-).
    – jtimberman
    Jan 25, 2010 at 6:45
  • @Arjan, I updated the post. It is 'abnormal' right now.
    – jtimberman
    Jan 25, 2010 at 15:54
  • 1
    Can you add a screenshot now of the "abnormal" version? Jan 25, 2010 at 16:07
  • Because they're happier and feel more at home on Apple...so they "let it all hang out", as it were, sulking in their comfortable fatness. And that's why some fonts on a Mac look fatter...
    – Peter
    Jan 26, 2010 at 2:12

3 Answers 3

23

The issue becomes apparent when you zoom in on the images:

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

As you can see, the skinny version is entirely greyscale, while the fat version has some pixels that are slightly reddish, and some that are slightly bluish.

This occurs because of sub-pixel anti-aliasing. An LCD screen doesn't actually contain square pixels that can be any color; instead, it has three skinny rectangular elements that are red, green, and blue. (Images below from Wikipedia).

Pixel Patterns on various displays

When anti-aliasing fonts, instead of simply using shades of grey, you can vary the intensity of each of the three colors, to allow you to render at three times the horizontal resolution you can achieve simply by anti-aliasing with shades of grey. The scaled-up pictures I provided don't actually represent what you are seeing; instead, the fonts should look considerably smoother due to the shape and placement of the pixels. It would be more accurate to render it something like this:

Example of Sub-Pixel anti-aliased text

So, what you are seeing is that sometimes the font is being rendered with sub-pixel anti-aliasing, and sometimes it is being rendered with normal anti-aliasing. I would guess that the sub-pixel anti-aliasing algorithms being used are optimized for black text on a white background, which may explain why the text looks a little "fat" when viewed as white text on a black background.

On the other hand, it may simply be a more accurate rendering of the actual font. If you look at a properly scaled up version of the same font, it looks a bit bolder and less wispy than the "skinny" version shown above:

Example text at higher font size

The reason it's switching back and forth between the two versions is probably because of your second monitor. I don't know exactly when the OS decides this, or how it does, but it likely detects an LCD with an unknown subpixel layout. Because it doesn't know the layout of the pixels, it goes with the safer standard anti-aliasing (as sub-pixel anti-aliasing can look really strange when displayed on an LCD with the wrong layout). It seems that somehow, you are sometimes getting it to make one decision, and sometimes getting it to make the other. I believe that once an application is started in a certain rendering mode, it won't change until you quit and re-launch the application, which would explain why you're seeing erratic behavior; what behavior you get may depend on exactly when you connect your external monitor along with when you launch your applications.

If you simply want to make this consistent across all applications, no matter whether you use the second LCD or not, and always use the skinny fonts, you can simply turn off font smoothing in the Appearance system preference panel:

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

Of course, then you lose sub-pixel anti-aliasing everywhere. As John Rudy points out, you can get somewhat more fine grained control by following the instructions for setting the level manually using the defaults program; or if you're not yet on Snow Leopard, then you should still have the more fine-grained controls available to you in System Preferences.

1
  • FYI I'm having best results on my laptop displays when unchecking that "Use LCD font smoothing when available".
    – jtimberman
    Apr 4, 2011 at 0:47
12

It looks like differences in the anti-aliasing, which could make sense if you're seeing this behavior at suspend/resume and external monitor connection/disconnection. It could be that your Dell monitor is triggering a change in the anti-aliasing mode used by the system.

Depending on your version of Mac OS X, you may have options to control the font smoothing used by the system in the Appearance System Preferences window. (As of Snow Leopard, I'm only seeing a checkbox to "use LCD font smoothing when available." This seems to correspond to the old "Automatic - Best for Main Display" setting.)

You can still configure this via system properties in Terminal.app. This article explains the details, which I'll summarize below:

There are five settings for font smoothing:

  1. Automatic - Best for Main Display
  2. Standard - Best for CRT (option 1)
  3. Light (option 2)
  4. Medium - Best for Flat Panel (option 3)
  5. Strong (option 4)

To tightly control this so that you are no longer in the automatic world, use Terminal.app to change the property system-wide. I suspect if you do this, the display switching (between monitors and I suspect perhaps your screen saver for suspend/resume) should no longer mess with your settings.

In Terminal.app, enter:

    defaults -currentHost write -globalDomain AppleFontSmoothing -int 2

Change the 2 to whichever option (from the list above, use the option numbers after the text) you like most.

4
  • Great reference! Its "instead rely upon LCDs to report what settings should be used" might indeed cause sudden changes, I guess.
    – Arjan
    Jan 26, 2010 at 23:33
  • I use iTerm, not Terminal.app, and the monospace screenshots are from Macirssi.
    – jtimberman
    Jan 27, 2010 at 5:27
  • As I'm using Leopard and not Snow Leopard, the option is available in System Preferences -> Appearance. "Standard...CRT" actually looks "normal" to me on the Macbook display, though I'll have to wait to check the external LCD when I get back to the office tomorrow.
    – jtimberman
    Jan 27, 2010 at 6:41
  • 2
    @jtimberman, as for I use iTerm, not Terminal.app note that the command given by John has no effect on just Terminal. You can also use iTerm to run it.
    – Arjan
    Jan 27, 2010 at 7:29
0

If you are using a CRT, you can expect some distortion of colours, brightness and aspect ratio in the time until the CRT is fully warmed up. What monitor are you using?

1
  • Internal macbook lcd display. I don't even own a CRT anymore.
    – jtimberman
    Jan 25, 2010 at 15:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .