Re: SuSE 9.3 - APT update - problems with fonts antialiasing
Mike FABIAN <[email protected]>
| Newsgroups | gmane.linux.suse.m17n |
|---|---|
| Message-ID | <[email protected]> |
AV <[email protected]> : >> rpm -q --changelog fontconfig > > * Pn Lie 22 2005 - [email protected] > > - 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 <[email protected]> http://www.suse.de/~mfabian -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]