Freetype 2.7.0: major Linux font improvements

tux_compAnnouncing a huge improvement to the current status of font-rendering on Linux, developer Nikolaus Waxweiler has posted Freetype v2.7.0 will ship the new v40 TrueType instructions interpreter enabled by default. Linux users have long been barred from the best rendering available, thanks to some patents from Microsoft. However, the patents have expired now and this very very commonplace complaint is going to be addressed.

v38 is the popular Infinality set of hacks built into freetype, which isn’t enabled by default. However, if you use it, you might have noticed the visibly slow font rendering. Nikolaus has stripped v38 and removed all the configuration options to come up with a uniform rendering style. This helped a lot in retaining the speed of v35 in v40. v38 will still be maintained but not compiled by default. Applications using freetype code can switch between the v38 and v40 interpreters but there is no userland utility yet.

However, there is a trick behind this. There is no subpixel hinting in v40! The code ignores all horizontal hinting instructions resulting in almost identical results. This also addresses glyph-spacing issues in well designed fonts. v40 will not treat any font differently.

Older fonts may not render very well with the new v40 interpreter. Nikolaus recommends using Liberation v2+ family of fonts instead of Arial, Times New Roman and Courier.

While there is no universal font to satisfy everyone, this current status of font rendering on Linux is not a happy affair. The new attempt is a very welcome effort in this respect.

However, the best solution would be to provide an option with multiple presets like the ClearType Tuner utility on Windows and let the users choose the setting that suits them best. Pre-Unity Ubuntu had something similar where you could choose from 4 different font configurations from Settings section but that’s been removed now. A step backwards, we would say.

Leave a Reply

Your email address will not be published. Required fields are marked *