X has been around since the mid 80's when the desktop and the computing environment were much simpler places. Fonts didn't need to do much of what they might be expected to do today. There was no such thing as cross platform, multi-media applications, like web browsers, in those dark ages. X, and those early, simple programs, could survive quite nicely with simple bitmapped fonts. And, of course, the Unix programmers of the day, were probably more concerned about how well their programs and networks ran, than how their applications looked. Substance over style, one might say.
The landscape changed radically with the popularity of the Internet, and the birth of the Microsoft and Apple platforms. Multi-media, and rich text type applications increased in popularity. Suddenly, fonts did more than just convey words -- they were expected to look good, in all shapes, sizes and styles. And all the while, X was saddled with a venerable, but dated font handling system.
To complicate things, some of the newer font formats came encumbered with patents and licenses that did not lend themselves to being embraced, much less adopted, by the Open Source community where such things have religious overtones. This is still somewhat of a stumbling block today.
The result of these various trends was often ugly fonts -- fonts that scaled horribly, blockiness, fonts that rendered so small as to be unreadable, and fuzzy, jagged looking fonts. And it doesn't help that the fonts that are bundled with XFree86, and other Open Source projects, are often not up to the task. Default installations of Linux distros many times did little to mitigate these effects either.
This has all changed recently, or at least is in the process of changing.
The traditional X font handling system, known as "classic X Window fonts", or "core X fonts", that is blame for X's reputation of poor and ugly fonts, is being replaced by a newer, more robust system, known as "Xft". Xft includes many quite radical changes and enhancements over the traditional, core rendering system.
If there is a downside to this, it is that these two system must co-exist. Not all applications have been updated for Xft, so the old system can not go away just yet. Xft itself, has been a work in progress, and is still evolving. And in fact, recent versions of Xft are incompatible with earlier versions. So what we have is two font systems, with two different configurations. Unless noted otherwise, the various tips discussed below pertain to the older, "core" font engine. That is where most of the difficulties lie.
As Xft becomes mainstream, we should see the difficulties of the past fade. Not only are the rendering improvements significant, but the configuration nightmare we have had in the past, is about to become history. Until then, we still may need some user intervention to help the process along.
The Fontconfig home page has a nice summary of the new features. Well worth the read! This is also discussed in a little more detail in the Xft section below.
If all this winds up confusing you, now at least you know why ;-)
There are many things we might do to improve fonts. Some of these might be common sense approaches, like selecting better fonts for individual applications, or upgrading to a more recent release of our favorite distro. But some may not be so obvious. The following are discussed in more detail in the following sections.
First and foremost, get some quality TrueType fonts installed! This will help with both font handling systems in use today. A few of the common Miscrosoft "web fonts", will make an enormous difference and will solve several potential problems with one blow. Copy these from Windows, or download them. Make sure your system knows about the new fonts by doing the appropriate configuration.
Make sure you are getting the most out of your monitor. Poor resolution will likely mean poor rendering, no matter how good the fonts might be.
Put your preferred fonts first in your fontpath. This should not a make a difference for Xft, but will for legacy font handling.