a companion discussion area for blog.codinghorror.com

Font Rendering: Respecting The Pixel Grid


"Steve Jobs thinks Microsoft has no taste. "

Not only does Steve Jobs think that, Bill Gates admitted that he and (by association) Microsoft have no taste.


months, nearly a year, ago O’Reilly listed “Fonts Encoding” on their ‘be out real soon’ list. It’s still on that list; July or August. I’ve kept wondering: a) why the subject deserves its own text, and b) why would anybody care to enough to buy it. Well, I guess it’s difficult enough that they can’t get it out the door. And this thread demonstrates that some folks care way more than I do. So long as Proggy fonts are supported.


@John and The Other One

John is right! YEAH! there is absolutely nothing wrong with the raster fonts, if you’re writing code or running some terminal windows, that is doing some useful work instead of hanging out in blogs. Even more, you’d most likely want these fonts monospaced!

Raster fonts are very fast and never blurry – they are designed for display’s pixel grid. You may not get 11pt size, but the choice between 10 and 12pt is enough.


Is it plausible that some of the reason for the difference traces back to some kind of patent issue? I can’t directly recall or reconstruct the status of the controversy, but I recall one from when ClearType was first announced.

Maybe if Apple did it the “the better way,” they’d be risking patent expenses for licensing or lawyers?


I don’t think Apple ported Cocoa, they just rewrote the GUI in Microsoft’s C++ (which makes it freak out in Wine). Apple has had WebKit running on Windows for years, it’s what renders the iTunes Music Store inside iTunes.


not knowing anything about programming with Quartz, would altering the way it renders fonts be something that a low-level hacker could possibly change? Or are we doomed with blurriness until 2012 or whenever 300dpi displays finally show up?


Not trying to defend Apple on their decision, but when you look a bit deeper into OS X you discover that their display is managed with display postscript. They are using a render engine that has been designed for print, and the techniques that they use DO look good in print where we have much higher DPI available (600 on low-end devices, 1200 on mid-level, and 2400 on high-end). It should be no surprise that they wind up using the techniques for print, since their display is using a print-based render engine. The same core is used for printing from OS X as well, so to make the display behave/render differently would require changes to that core, something, I suspect they are not willing to persue.


Camz –
I noticed that you can turn the anti-aliasing off totally on the screen (ie, “defaults write NSGlobalDomain AppleAntiAliasingThreshold 100”, but when you go to “print” it renders the print preview in its full, smoothed glory regardless of whether or not on-screen antialiasing has been forced off.

So on some level, the on-screen display is handled differently than the rendering that’s being used to print. I think the question really comes down to whether Apple wants to invest the resources to tune for low DPI screens and provide end-users with better tools to adjust the rendering to their own tastes.


I’m curious how the font rendering in Linux compares? I haven’t used Linux in a couple years, but I remember being impressed by how nice fonts looked on Slackware (version 9 or 10, can’t remember).


Font rendering in windows is Beautiful…So Clear, so sharp…It takes my breath away. The font rendering on OS X gives me a headache.

Nuff said


As a recent Windows to Mac convert, I have to say the one thing that really strikes me when I have to use a PC again, is how lovely the fonts are on the Mac.

Everything looks a lot less harsh and jagged. I can see what you mean about the bluriness, but it has never caused me reading problems, and if anything it’s a lot more restful on the eye.

Also, I used to hate the way that when using Word on the PC, if you increased the font size of the whole document, it would sudenly appear to be bolder or lighter, seemingly at random.


Font rending on Windows looks like crap. It’s too sharp. It feels abrasive. Mac font rending is much smoother and nicer.


Use zoom, people. Use zoom.

User of Mac, Windows Linux


I concur with Spolsky’s explanation: it all comes down to whether you respect the font designer, or the pixel grid. As a daily user of both OS X and Windows, there are times when I appreciate each different approach.

By the way, Camz, OS X is not build on Display Postscript per se. NextStep and OpenStep used to be based on Display PostScript, but Apple ripped all that out (due to licensing issues with Adobe) and rewrote it themselves into what might be called “Display PDF”. Having said that, though, your main point still applies: the whole display architecture boils down to something that operates in “real space” and is not necessarily aligned to the pixel grid.

For me, when I’m writing or doing page layout (especially for something that’s going to be printed), I appreciate the Apple approach, because in this context ClearType’s inaccuracies drive me crazy. When I’m reading a lot (and I’m not so interested in the aesthetic appearance of the text, just its content thank-you-very-much), then I appreciate ClearType. Frankly I wish both approaches were available in the same OS, and that I could switch between them depending on what I was doing at the time.


Here’s the thing, Jeff. When dealing with anything that has a hint of Apple vs. Microsoft you better expect a good chunk of logic, reason and objectivity to be thrown right out the window. The relationship of Apple and Microsoft fanboys to their respective companies is like that of a parent to a child.

For instance, how many parents, in a public discussion, would admit that their child is a bad student, sucks at sports, is lazy, has a bad attitude, and is uglier than a frog’s butt? I’ve noticed fanboys are the same way — which is funny — because in a line of work where logic, reason and objectivity are so important, there can be an alarmingly substantial lack of it sometimes among a lot of programmers.

Anyhoo, I’m not airing my opinion on this topic. I just think it’d be nice if some people would peel back their built in or cultivated prejudices and really, really take a deeper look. Always look deep, always question.


I recently purchased a Dell Latitude D820. It has a 15.4" LCD and I was able to choose a WUXGA display (1920x1200). This works out to a 147DPI. Initially at 96 dpi all of the fonts were impossibly tiny. I was afraid I would be slouching the entire time using my laptop. I bumped it up to 120DPI setting in Control Panel and I could read!

Then, I dug around, and asked some people and determined that it was ~147DPI and so I went home to the laptop determined to set its DPI. When I picked Vista’s custom setting I was greeted with a ruler! So I asked my wife for a ruler and I dragged until it looked right. Lo and Behold the number looked best at 147DPI.

Fonts now are actually LARGE and VERY readable. I’m VERY impressed. Vista got this VERY right. I love it. and I love my near 150DPI display. So I am 1/2 way to that 100DPI to 200DPI leap.


Apple’s Viewpoint: Garbage in, Garbage out

Microsoft’s Viewpoint: Garbage in, (arbitrary deterministic magic on behalf of Microsoft), Something nice

I would like to point out that Apple’s viewpoint is shared by Unix hackers, disillusioned programmers, and anyone who validates their webpages XHTML Strict. Microsoft’s viewpoint is responsible for many instances of IE poorly rendering CSS2.


It would make sense to have everything align to the printing grid if you’re creating something for print.

Personally, I have created very little in my career, or even my personal life, that is intended for print. Almost everything I’ve written since I last attended school was meant to be read on the screen, or was meant to be interpreted by a compiler. Therefore, I prefer that most things conform to the screen I’m reading on, rather than a page I’ll never print.

Furthermore, a web browser is not a design interface, and things designed for the web (and displayed in a browser) should look good on the screen.

That being said, I find it interesting that the images displayed under the Safari discussion look worse on my 1600x1200 CRT display than Safari itself looks on my lower resolution (1280x768? I don’t remember off-hand the resolution of the 17" widescreen laptop) LCD display. Of course, for the most part, most font-smoothing techniques look better on LCD than CRT. I think the problem for me may simply be that when something looks fuzzy on the screen, my eyes try to adjust focus to bring the words into focus, and this eventually gives me a headache.


Interesting. And it definitely is complicated.

I don’t think it’s true that Mac font rendering uses no hinting at all. I duplicated some of the FontFocus samples in TextEdit. OS X’s 11-px Times pixel-grid alignment is almost identical to the FontFocus antialiasing, but the OS X display also benefits from subpixel smoothing, and I think it is superior. The 9-px Helvetica sample wasn’t as good on the Mac, though.

You can see my samples at http://zajac.ca/fonts/ .

Also note that the fontblog study you link to does not indicate that snapping to pixels improves readability, but only that ClearType subpixel rendering improves readability over no antialiasing. The summary does not indicate whether the aliased text in the study was hinted (which snaps to the pixel grid, regardless of smoothing) or not.


What’s interesting about this is often, for professional printing, True Color is preserved over Shape. For example, even in the latest version, Photoshop’s less-than-100% zoom does not do any anti-aliasing. The reason is anti-aliasing introduces colors that are not really in the image, and this is generally frowned upon by many photo and print professionals who need exacting color accuracy between the monitor and the output. Photoshop’s zoom will make finely-detailed images appear to be broken – it will sacrifice the true shape of the image to preserve the true color. Photoshop does have many levels of optional font anti-aliasing, but these “bake” the anti-aliasing into the image – it is NOT just for display on a monitor – so I believe this is mostly for web work.

Color accuracy really isn’t an issue when it comes to something mundane as rendering a web page, but it’s an example where “respecting the font designer” isn’t necessarily the “more professional” way of doing things.