AV
rpm -q --changelog fontconfig
* Pn Lie 22 2005 - mfabian@suse.de
- Bugzilla #64424: "Bytecodeinterpreter in freetype2 - wieso ausgeschaltet?" The byte code interpreter is enabled now at build time in our freetype2 package. Setup the defaults in /etc/fonts to use black and white rendering (antialias=false) and the byte code interpreter (autohint=false) for a few fonts which are known to have high quality byte code instructions. Set antialias=true and autohint=true as the default for all other fonts.
That is the relevant changelog entry.
If you look into /etc/fonts/suse-pre-user.conf you will find something
like this,
<match target="font">
<test name="family">
<string>Andale Mono</string>
<string>Arial</string>
<string>Comic Sans MS</string>
<string>Georgia</string>
<string>Impact</string>
<string>Trebuchet MS</string>
<string>Verdana</string>
<string>Courier New</string>
<string>Times New Roman</string>
<string>Tahoma</string>
<string>Webdings</string>
<string>Albany AMT</string>
<string>Thorndale AMT</string>
<string>Cumberland AMT</string>
</test>
<test name="pixelsize" compare="less_eq">
<double>18</double>
</test>
<edit name="autohint">
<bool>false</bool>
</edit>
<edit name="antialias">
<bool>false</bool>
</edit>
</match>
I.e. a short list of fonts which are known to have good byte code are
rendered by default in black and white (no antialiasing) and without
the autohinter (i.e. using the byte code interpreter) for sizes below
18 pixels.
This gives a bitmap look and feel if you have the agfa-fonts package
and/or the Microsoft Webfonts installed.
The quality of the black and white rendering for these fonts is very
good, as good as good bitmap fonts. But only if you use a freetype
package which has the byte code interpreter enabled.
The latest freetype2 package you got with your update has
the byte code interpreter enabled. By downgrading it you
got a freetype2 package without the byte code interpreter
again, which means the black and white rendering will be very
bad even for fonts with good byte code.
I was asked to set the defaults like this by a few people who dislike
the antialiasing very much, so much that they claim it is unusable.
These users prefer a bitmap look and feel, which can be achieved
with the above settings.
But apparently most users (me included) prefer the anti-aliasing,
even when high quality black and white rendering is possible.
Therefore I disabled the above rule by default again by setting the
pixelsize limit to '0'. Users who want ot enable it can copy that rule
into their ~/.fonts.conf and use a non-zero pixelsize.
If you want to make sure that you are always using the autohinter
and always using anti-aliasing, you can put the following
into your ~/.fonts.conf:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "/etc/fonts/fonts.dtd">
<fontconfig>
<match target="font">
<edit name="autohint">
<bool>true</bool>
</edit>
<edit name="antialias">
<bool>true</bool>
</edit>
</match>
</fontconfig>
As I wrote above, I disabled this black and white rendering again and
the relevant part of /etc/fonts/suse-pre-user.conf now looks like this
in the current development version of SuSE Linux 10.0:
<!-- ************************************************************ -->
<!-- Hinting and antialiasing -->
<!-- ************************************************************ -->
<!--
Fonts which have high quality byte code interpreter instructions
can look very good in small sizes when rendered in black and white
(antialias=false) using the byte code interpreter (autohint=false).
The results look as good as high quality bitmap fonts.
On the other hand, most Fonts do not have good byte code interpreter
instructions and look *very* ugly when rendered like this.
I.e. for most fonts autohint=true and antialias=true gives best
results.
For fonts which do have good byte code instructions, it seems
to be a matter of taste. Most users apparently do not like the
bitmaps no matter how good they are and prefer to render
these fonts with anti-aliasing as well.
When rendering fonts which do have good byte code with anti-aliasing
(antialias=true), the byte code apparently doesn't help much, to
the contrary, it produces strange rendering artifacts.
Therefore it is usually better to always use the autohinter (autohint=true)
when rendering with anti-aliasing.
-->
<!--
Using the autohinter and anti-aliasing.
This is a good default for most fonts.
-->
<match target="font">
<edit name="autohint">
<bool>true</bool>
</edit>
<edit name="antialias">
<bool>true</bool>
</edit>
</match>
<!--
The following rule sets up black and white rendering with
the byte code interpreter for a small list of fonts which
are known to have good byte code and give bitmap quality
results at small sizes.
The pixelsize limit is set to '0' though, which effectively
disables this rule by default because most users don't like
that bitmap look and feel.
If you like a bitmap look and feel of your desktop,
copy this rule into your ~/.fonts.conf file and replace the '0'
with non-zero pixelsize limit. Using '18' as the pixelsize
limit is a good choice if you have the fonts in this list installed
and like a bitmap look and feel.
-->
<match target="font">
<test name="family">
<string>Andale Mono</string>
<string>Arial</string>
<string>Comic Sans MS</string>
<string>Georgia</string>
<string>Impact</string>
<string>Trebuchet MS</string>
<string>Verdana</string>
<string>Courier New</string>
<string>Times New Roman</string>
<string>Tahoma</string>
<string>Webdings</string>
<string>Albany AMT</string>
<string>Thorndale AMT</string>
<string>Cumberland AMT</string>
</test>
<test name="pixelsize" compare="less_eq">
<double>0</double> <!-- use a non-zero pixel size to enable this rule -->
</test>
<edit name="autohint">
<bool>false</bool>
</edit>
<edit name="antialias">
<bool>false</bool>
</edit>
</match>
--
Mike FABIAN