22 October 2008

Why do people hate Ubuntu's fonts?

I always see people complaining about Ubuntu's fonts and font-rendering. I don't get it. Could someone please tell me exactly what is wrong?

Ubuntu has some pre-set font settings: Monochrome, Best Shapes, Best Contrast, and Subpixel Smoothing. These are equivalent to certain settings found when the Details button is clicked. They are as follows:

  • Monochrome → No smoothing, Full hinting
  • Best Shapes → Greyscale smoothing, Medium hinting
  • Best Contrast → Greyscale smoothing, Full hinting
  • Subpixel Smoothing (LCD) → Subpixel smoothing, Full hinting

I decided it was time to do a comparison of the renderings. I often see people suggesting turning on Subpixel Smoothing for LCDs, but I never do this. I use the Best Contrast setting, which looks like this:

screenshot of Best Contrast setting

Compare to the Subpixel Smoothing setting:

screenshot of Subpixel Smoothing setting

I always thought the Subpixel Smoothing setting was blurry. It seemed like the verticals weren't truly vertical and the diagonals were getting lost a bit. But now, looking at it, it looks like there's actually better contrast on the Subpixel Smoothing setting. At least, the text looks darker. And yes, the diagonal on the "w" is less "jagged" as I've heard people call it, and maybe it's because of days I spent making cartoon dollz, but I kind of like seeing pixels. Though now that I've moved away from my beloved 800x600 resolution, I don't think I can accurately count pixels anymore. Maybe not seeing the pixels is what makes the subpixel setting seem less sharp.

Best Contrast is joined by Best Shapes in using grayscale smoothing. Here's Best Shapes:

screenshot of Best Shapes setting

And here are the other two grayscale-smoothing settings. The first is with no hinting. The second is with slight hinting.

screenshot of grayscale smoothing, no hinting setting screenshot of grayscale smoothing, slight hinting setting

The Subpixel Smoothing option, as mentioned before defaults to Full hinting. In order, here are no hinting, slight hinting, and medium hinting:

screenshot of subpixel smoothing, no hinting screenshot of subpixel smoothing, slight hinting setting screenshot of subpixel smoothing, medium hinting setting

And, finally, here is the Monochrome setting. It's very pixelated, but try changing it to "no hinting," and it's even worse.

screenshot of Monochrome setting

Here's the side-by-side comparison:

chart comparing fonts with grayscale v subpixel smoothing and various types of hinting

(Click image to view full-size)


Shane Par-Due said...

Do you know how to make the Firefox trunk's fonts look as good as the Ubuntu-built Firefox's?

Mackenzie said...

Nope. It might be something about Ubufox, but it's more likely some compile flag with Gecko.

Keybuk said...

I'm surprised that you say people complain about Ubuntu's font rendering.

While that certainly used to be true, I've not seen any significant amount of complaints for a while now - certainly not for that group which turn on subpixel rendering and have TFT screens.

A correction for your post: in Intrepid, the default level of hinting for subpixel is "slight", not "full".

This gives by far the superior shape.

Mackenzie said...

I saw yet another complaint about the fonts on Digg today.

And um, they changed what Subpixel's default setting is in Intrepid? I wonder what that'll mean for upgrades.

cmsj said...

the font configurator should show all the permutations and let the user pick which looks best to them instead of having two windows of options

snuxoll said...

@cmsj Yes, something more like the ClearType configuration tool, which is actually quite excellent, I don't care how much you hate Windows.

Ronan said...

I think people hate them because the full hinting kills kerning (_murders_ kerning would actually be more appropriate).

Until I played with the font settings, months after discovering Ubuntu, I was complaining all the time about how bad the fonts kerning was. It's not. The fonts are great, it's just that the font engine was doing its best to hinthinthinthinthint, killing all the finely-tuned kerning baked in BitStream Vera.

So when I hear (thanks keybuk) that full hinting default will be dropped in favor of slight hinting, I say clapclap. Good idea too not to fall in the opposite extreme. Screen fonts have to be readable, and for example I find OSX default overkill (but that's okay since their designers audience want fidelity, not readability). Slight for Ubuntu will be grrrrrrrreat.

Excellent post mackenzie!

bawjaws said...

This is a bit of a can of worms actually, see these links for the internet drama that ensued when Safari was first released on Windows, with Apple-style font rendering:


I'd suggest going for minimal or no hinting because:

* casual users will think it is prettier
* there's no patent problems (http://freetype.sourceforge.net/patents.html)
* the people who complain about 'blurriness' seem the most likely to be able to fine tune to their own individual preference
* it makes it easier to use free (both meanings) fonts, since they don't have to do the incredibly time intensive hinting process that you see in Microsoft fonts
* LCDs need less hinting than CRTs (which are on the way out)
* handhelds in particular, and screens in general are increasing in DPI which requires less hinting

It would be good to see some actual research on 'readability' rather then rely on old hands with computers who are entirely habituated to reading un-anti-aliased (double negative!) fonts from back in the day.

jldugger said...

You will never be able to fully demonstrate the advantages of subpixel rendering with a simple screencapture picture. Subpixel rendering requires a fundamental alignment of the text with the pixel array. Unfortunately, this means that you'll see some rather stark red/blue coloration in the photos that won't be as noticable in person.

Agro Rachmatullah said...

I have no problems with the roman alphabet. However, go to the realm of Japanese kanji and things are really a pain in the eye to read:


Please support this idea of improving the CJK font appearance in Ubuntu:


It's critical for us...

Mackenzie said...


Oh, my! I didn't consider Japanese hiragana, katakana, and kanji. Interesting...In Evolution and GJiten, Japanese becomes blurry. But, in Firefox, it is clear.

G said...

personally I've been using the Slight hinting mode combined with Subpixel, ever since I found it (a while after installing Ubuntu 7.10)

I found that a lot of people are used to no anti-aliasing or windows's align-to-pixel "full" hinting which ruins the shapes of some glyphs and also doesn't scale well (kerning etc)

Try slight hinting and subpixel on your LCD sometime... it might grow on you.. also a bonus is the italic and bold actually look more accurate and not as "jagged"

El Tate said...

Well, i think that the problem isn't with the fonts themself. The problem is how the X server renders the fonts. I've copied all the fonts of my windows installation, plus the OS X's ones, and i've did the dpkg reconfigure fonts thing. After that i've selected Subpixel smooth and slight hint. After all that crap, the fonts looks pretty good BUT not as the same compared with windows or mac os. Even more, i had to delete the Lucida Sans Unicode because it made look weird the open office UI, and had a lot of "space" over and above the words.

Another thing is that the fonts of java apps looks like crap (no hint, no smooth), and the ones of QT apps render weird too. With the same fonts configured in opera i can't make it look like the rest of the desktop. "Some QT configuration" anyone will tell... OK; That's NOT the right answer. I can't say that to my dad, for example.

Taking account that i've spent about an hour enabling the "nice" (but MAC copyrighted) rendering with the dpkg fontconfig-config, setting some pretty fonts (again, copyrighted) like Lucida Sans (installed with the java-fonts package from the repos) and Verdana (from the mscorefonts) (in replace of the, nice but a bit weird with the rendering, Deja Vu), configure Firefox like the Mac/Windows version to get the defaults fonts to view a page, configure Opera with some readeable fonts, in a not hurting size, and disabling some rendering for web pages (Enable X font rendering in about:config), and putting even more fonts that the ones of the corefonts packages...;
I still can NOT get a perfect rendering.

In other words, the X server sucks and very very bad in the field of font rendering. So, now i understand a bit why the people complains about how the desktop renders the fonts. I had to ask to my msn contacts which font are they using, in order to get the same look that i get in windows or mac out of the box (i know that the fonts that are in these OSs are copyrighted, and the default ones only cover a very small spectre of fonts, with a similiar but not the same look). I mean, in a default install you get the Deja Vu fonts, that cover the Verdana family. You get the Free Sans/Serif/Mono that covers the Arial, Times and Courier family. Same with the Liberation Family, not included by default. But the other bunch of fonts are "lost" making the system look the same and the web pages bad rendered since the designers in general use the Tahoma font, which isn't a good alternative.

I hope that change sometime, at least covering the missing fonts.

gauthierm said...

Here's a good reason why people complain: https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/250917

Tom said...

It's not the font-smoothing I dislike about Ubuntu, it's the default font itself.

However one quick change to Liberation or the Droid font and I'm quite happy!

troy-sobotka said...

Ronan said...
"I think people hate them because the full hinting kills kerning (_murders_ kerning would actually be more appropriate)."


I might add that "None" can also commit acts of first degree murder depending on the kerning table pairs. Try 'oo' for a pairing with FreeSans medium for example. Watch the "Smoothing" label kerning flail miserably on any setting other than slight.

Plus one to slight hinting.

Jhangora said...

Cool blog.I'll visit it again.Thanx a lot for all the tips.

oversword said...

it should be "The brown fox jumps over the lazy dog" otherwise you have no "s" and the "red" is not required