Danas je jako tesko naci distribuciju (cak i nemoguce) koja ne isporucuje pakete kompajlirane sa xft
podrskom. Svi su culi za Xft. Interesntno je da je skoro nemoguce naci na netu konkretan odgovor na
pitanje “Sta je Xft ?”. Oni pretezno variraju od “… nesto sto omogucava anti-aliasing fontova…”,
zatim “… nesto sto koristi freetype …” itd. Definitivno u oci upada “nesto” rijec. I red bi je bio
konkretizovati, jer “nesto” se moze odnositi na kasiku, tanjir, cekic i bilo sta sto oci u ovom trenutku
mogu da registruju :). U stvari Xft je jedna veza u obliku biblioteke izmedju freetype i Xrender
ekstenzije. Freetype se potrudi da kvalitetno procita fontove, a Xrender da ih slatko “nalijepi” na svaku
aplikaciju. Ne treba zaboraviti i cuveni anti-aliasing (net je rjesenje za istrazivanje ovog pojma),
kojeg sam freetype kreira.
Eh taj isti anti-aliasing na prvi pogled izgleda lijepo, sve je mekano (kao pamuk :)), divno, krasno,
slatko, lijepo… ali ako provodite duze od 6 sati dnevno za racunarom i zelite da budete kandidat za
ocnog ljekara, nastavicete ga koristiti. Problem lezi u tome da su fontovi zamuceni, sto zahtijeva
dodatno naprezanje ociju da rasclane karaktere u smislene cjeline. Narocito je problem sa "oblijim"
fontovima, kao npr. Bitstream serija. Sami fontovi, bez anti-aliasinga su uzasni, dok ih sa spomenutom
tehnikom, ne cini nista boljim. Nije ni cudo sto su ih “poklonili” (uslovno receno, jer je to jedna
velika reklama za njih, gdje god da se krene, vidi se ovo ime). A neki se kunu u njih (hajirlije koje
nikada u zivotu nisu culi za Verdana, MS-Serif, Arial, Tahoma). Zalosno je sto znamo ko je njihov
kreator, ali im to nikako ne umanjuje kvalitetu. Ovi fontovi sa aliasingom su fantasticni, ali opet se
javlja problem zamucenosti (ovaj put nesto manje).
S druge strane, isti fontovi bez aliasinga su ne manje kvalitetni. I jos ostri, cime se gubi potreba za
naprezanjem ociju i mozga.
Ipak, sigurno ste culi o patent problemima u freetype-u. Sam patent drzi Apple. Freetype je pokusao naci
neko zaobilazno rjesenje (koje ne radi kako treba, barem u ovom trenutku), tako da za obicne smrtnike
preostaju dvije solucije: koristiti postojeci freetype, kojeg isporucuju distribucije (sa komentiranim
patent dijelom) ili uzeti stvari u svoje ruke i prilagodit si.
Evo kako ukljuciti tu opciju:
-
trebace vam source freetype-a; mozete ga skinuti sa http://www.freetype.org ili koristiti source kojeg
isporuci distribucija; -
neka verzija odgovara vec instaliranoj verziji (ovo je za slucaj ako koristite source sa freetype.org)
- ovo mozete provjeriti u freetype.h fajlu (koji je negdje u /usr/include/freetype direktoriju)
gledajuci FREETYPE_MAJOR FREETYPE_MINOR i FREETYPE_PATCH makroe;
- ovo mozete provjeriti u freetype.h fajlu (koji je negdje u /usr/include/freetype direktoriju)
-
nakon sto ekstraktujete arhivu sa source fajlovima, potrazite ftoption.h (smjesten je u
[dir]/include/freetype/ftoption.h, gdje je [dir] mjesto ekstrakcije) -
potrazite liniju:
/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
i uklonite komentare;
- nakon toga ./configure --prefix=/usr, make i make install
Neka prefix bude /usr direktorije, inace ce po defaultu instalirati u /usr/local.
Zatim, primjeticete u /etc/fonts direktoriju dva (ili tri fajla, zavisno od distribucije), i to fonts.dtd i
fonts.conf. Ono sto spominjem zavisno od distribucije je da se zna naci i local.conf, kojeg korisnici
mogu modifikovati. U slucaju njegovog nedostajanja, kreirat ga je lako. Ne bi preporucio mijenjanje
fonts.conf (komentar u vrhu fajla najbolje govori). Naravno, moguce je kreirati i fonts.conf u lokalnom
home direktoriju, ali nece ga svi programi citati (recimo mozilla).
Ostaje jos utipkati ovo:
<fontconfig>
<match target="font">
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>
Ako nod vec postoji, nema potrebe ga pisati ponovo, a ako ne, dovoljno je prekopirati gore
dati primjer.
Korisnici ne bi bili korisnici kada ne bi zahtijevali nesto tipa “fontovi velicine x neka budu sa
anti-aliasingom, dok ostali bez njega”.
Evo kako i to:
<fontconfig>
<match target="font">
<test qual="any" name="size" compare="more">
<int>7</int>
</test>
<test qual="any" name="size" compare="less">
<int>12</int>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>
Vazno je napomenuti da je anti-aliasing iskljucen za rang 7-12 (sto ne ukljucuje velicine 7 i 12), dok za
ostale velicine je obratno. Naravno, moze se prilagoditi i za specificne fontove, grupu fontova i slicno.
Man fonts-conf ce dati detalje.
I jos sto ostaje je negdje “maznuti” gore navedene M$ fontove, opcionalno kreirati za njih direktorij i
kopirati ih i pokrenuti u njemu ttmkftdir. Neke distribucije ne isporucuju ovaj program (Slack), ali moze
se komotno “posuditi” sa nekog suse cd-a koji skuplja prasinu. Ttmkftdir je potreban kako bi se kreirali
puni nazivi fontova (ovdje mkfontdir ne pomaze, jer moze procitati samo X11 bitmap fontove), sto na kraju
ispljune fajl naziva fonts.dir.
Neka X-i i local.conf znaju za kreirani direktorij. Ostaje jos da malo “prilagodimo” mozillu. Kde ce sa kcontrol lijepo
procitati, tako da za to nema problema; ovo se odnosi na one koji imaju mozillu, a nemaju kompletan
gnome. U home direktorij, u .gtkrc-2.0 (ako ga nema, kreiranje je preporuka) dodati :
gtk-font-name="Verdana 8"
Umjesto Verdana moze ici nesto po zelji, a isto se odnosi i na velicinu fonta. Nakon toga, mozilla ce
veselo ostriti fontove.
Ah, da, jos nesto. Cesto aplikacije po defaultu koriste Serif ili Sans Serif fontove. Sami fontovi pod
ovim imenom ne postoje (osim ako se ne koriste M$), vec su aliasi za druge postojece. To se lako da
prilagoditi oblikom :
<alias>
<family>sans-serif</family>
<prefer>
<family>Helvetica</family>
</prefer>
</alias>
Da se stvari ukomplikuju, umjesto Helvetica moze ici i Verdana; Helvetica je samo alias za Verdana familiju.
Ih ovo se oduzi…
Za kraj evo kako izgleda razlika:
http://code.linux.org.ba/pics/img1.jpg (bez AA)
i
http://code.linux.org.ba/pics/img2.jpg (sa AA)