Fonty a rh9 a Mozilla 1.4 s Xft a gtk2

Autor: Covex <covex_at_lowlevel.cz> Posledni zmena: 15.04.2004

Pokus o vysvetleni jak je to s fonty v rh9 a jak je na tom Mozilla 1.4.

Mozilla 1.4 je v rpm pro rh8 kompilovana s obojim - jak s podporou Xftreetype (Xft) tak s tim ze defaultne pouziva knihovnu gtk2 pro zobrazovani vsech prvku prostredi. To s sebou nesel nekolik uskali spojenych, jak jinak, predevsim s fonty. Tedy krom toho ze gtk2 je pravdepodobne trochu pomalejsi nez gtk a tak i kdyz je Mozilla mensi mam pocit ze je trochu linejsi.

Co me osobne na prostredi rh9 a gtk2 vadi je prave antialiasing dodavany z xfreetype, ktery gtk2 defaultne pouziva.

Jak na to

V rh9 doporucuji ponechat jen dva zdroje fontu - a to samotna Xka (konfiguruje se v /etc/X11/XF86Config sekce files) a xfteetype (/etc/fonts/fonts.conf). Pokud z nejakeho duvodu nepotrebuje nutne XFS (font server) zcela bych ho vynechal (odstrante radku unix/:7100 z XF86Configu). Xka pak dodavaji fonty pro vsechny "starsi" aplikace. Xfreetype pro ty novejsi, ktere se s nim uz znaji.

Antialiasing v Mozille nejde v plne mire ovlivnovat jen v nastaveni Mozilly, protoze fonty Mozille dodava antialisovane uz Xft. (Kdybyste hledali nastaveni pro antialiasing v about:config hledejte spise "hint(ing)", "_aa_" apod.) Tedy cela Mozilla vypada asi takto:

Pri pouziti fontu s kodovanim iso8859-2 (-1) nastaval v Mozille neprijemny problem se strankami psanymi v utf8 (viz. obrazek testovaci stranky nize).

Pokud se nekomu antialiasing libi necht ponecha ve svem /etc/fonts/fonts.conf toto:

        /usr/X11R6/lib/X11/fonts/misc
        /usr/X11R6/lib/X11/fonts/75dpi
        /usr/X11R6/lib/X11/fonts/TTF
V adresary TTF jsou pomerne kvalitni TTF fonty primo z XFree.

Pokud po nem netouzite, stejne jako ja, vystacite si s timto:

        /usr/X11R6/lib/X11/fonts/misc
        /usr/X11R6/lib/X11/fonts/75dpi
OVSEM je potreba udelat jeste jeden krok. V teto fazi se totiz dostanete do situace ze vase fonty budou vypadat asi nasledovne (podle ruznych drobnych nuanci se vysledek muze lisit - princip je vsak stale stejny):

A jaky ze je ten princip? Mozilla se snazi stranku s kodovanim utf-8 zobrazit skutecne za pouziti fontu utf-8. Z neznameho duvodu ji vsak zrejme Xft naserviruje fonty iso8859-x.

To ma samozrejme daleko k idealnimu stavu. A tak je potreba pochopit dalsi kus triku. Kdyz se podivate do adresare

/usr/X11R6/lib/X11/fonts/75dpi
konkretne do souboru fonts.cache-1 zjistite, ze z neznameho duvodu fc-cache neobsahuje iso8859-2 fonty presto ze v adresari jsou, zato obsahuje iso8859-1 a utf-8, ktere jsou v adresari take. Proc tomu tak je netusim ani nevim zda to je spravne, ale po jednoduche uvaze, ze iso8859-1 doufam nepotrebuji jsem je z adresare smazal.

Prikazem

fc-cache -v
pak znovu vytvorite cache, tentokrate uz bez iso8859-1 fontu, jen s fonty utf-8.

Vysledek pak vypada nasledovne:

coz je jiste podstatne lepsi. Netvrdim sice, ze vsechny fonty vypadaji jak maji, jsou ale aspon dobre citelne.

Dalsi hejblatko, ktere ovsem podle me nema zadny vliv je v Mozille Edit/Prefrences/Navigator/Language kde muzete volit mezi iso8859-2 a utf-8. Zadny rozdil jsem vsak nepozoroval.

Tim jsme tedy vyresili aspon cast problemu s Mozillou, dalsi nastavaji s tim, ze kdosi opet hybal s velikostmi fontu (doufejme ze uz naposledy) a tak na nekterych strankach bude velikost fontu jina nez doposud znate. Vzhledem k tomu, ze kazdy zasah do fontu znamena zmenu, pripravte se na to, ze i tato bude mit nasledky nekde jinde.

Vykriky co jsem dale zjistil:

  • Poradi fontu ve fonts.dir ma jakysi smysl, stejne tak poradi ve fonts.cache-1. Melo by mit vliv i poradi fontu v tagu "prefered" ve fonts.conf.
  • Vypada to, ze pres nektere mene pruhledne chovani se konecne do fontu v Linuxu vkrada poradek. Lze tedy za chodu a pomerne snadno ovlivnovat fonty predevsim pomoci /etc/fonts/fonts.conf. Jeho format je bohuzel XML, takze trochu moc "programovaci" a malo konfiguracni.
  • Jako monospace z me neznameho duvodu Mozilla pouziva fixed a nenecha si do toho od fonts.conf mluvit a lze to zmenit jen v Preferences/Font/Monospace, pricemz toto nastaveni nakonec nerespektuje ani mailovy klient a zarputile pouziva fixed, stejne tak jako View Source. Ano a uz je to vsechno jasne - mozilla pro stranky u kterych neni definovano kodovani pouziva nastaveni Western fontu z Edit/Preferences/Appearance/Fonts. Tzn. pokud chcete nastavit fonty pro vsechna kodovani stejne tak se zapotite, ale v podstate byste meli vystacit s Western, Central Europe a Unicode.
  • Pokud budete mit k dispozici skutecne jen bitmapove fonty, tak to vypada ze mozilla je nyni defaultne neresizeuje, takze nikdy neuvidite obri fonty a pokud zkusite na testovaci strance zvetsovat fonty, budou se zvetsvovat pouze rozestupy radku.
Pokud si chcete vyzkouset jak testovaci stranka vypada u vas muzete vyzkouset jak iso8859-2, tak utf-8.


Update Tak mi to nedalo a jeste jsem vyzkousel mozillu z linuxoveho sea.tar.gz instalatoru. Vysledek je opet jiny. Posudte sami.

Mozilla 1.4 s testovaci strankou v iso8859-2:

s testovaci strankou v utf-8

Evidentnich je nekolik zmen - jednak barva prostredi Mozilly (nepouziva Gtk2). Dale to ze Mozilla zrejme nepouziva Xft a tedy v menu Preferences/Appearance/Fonts nemate nic z toho co vam vnucuje redhat. Zcela spravne funguji vsechny fonty v iso8859-2. V utf-8 jsou z me zatim neznameho duvodu pri malych velikostech zobrazeny disproporcionalne ceske znaky. Mozilla sea umi resizeovat PCF (bitmapove) fonty. Vysledek je myslim, zvlaste pro iso fonty daleko lepsi a vsechny fonty vypadaji jak maji!


Update Mozilla 1.6 uz je na tom s disproporcionalitou malych ceskych pismen podstatne lepe a problem se v podstate neobjevuje.