Cikkünkből kiderül, hogy honnan érdemes TrueType fontokat szerezni Linux rendszerünkhöz, hogyan kell ezeket a fontokat telepíteni, részletes példán bemutatva az installálás folyamatát, különös tekintettel a unicode-os fontokra.
Ahhoz, hogy kedvenc rendszerünkön TrueType fontokat használhassunk, először is szereznünk kell ilyen fontokat. A Windows esetén ez nem gond, a rendszerrel együtt adják őket, de a Linuxokon más a helyzet. Az XFree86 grafikus felület többféle fontot ismer, skálázható fontokat (pl. Type1, TrueType, Speedo) és nem skálázható, eszközfüggő bitmapes fontokat (bdf, pcf) egyaránt. Ez persze nem baj, de az már igen, hogy a Linuxokra --alapértelmezett telepítés mellett-- általában nem kerül föl túl sok betűtípus, ami pedig fölkerül, az gyakran bdf vagy pcf formátumú, bitmapes, nem skálázható font, vagy pedig Type1 font. A Type1-esek skálázhatók ugyan, de nem a képernyők 75-100 DPI-s felbontásához lettek kitalálva, a linuxos grafikus felületeken pedig ugyancsak rondán, szőrösen szoktak megjelenni a kb. 30 pixelnél kisebb betűméretekben. Ha tehát minden méretben szépen megjelenő betűket szeretnénk látni a képernyőnkön, érdemes TrueType fontokat beszerezni és beállítani az X-szervert a használatukhoz.
Trebuchet MS és jellemzői
A legegyszerűbb megoldás a Windowsból lenyúlni a fontokat annak, akinek van legális Windowsa. Ha nincs, akkor igazán kár lenne a szép, tiszta GNU/Linuxunkat mindenféle "szerzett" és "talált" fontokkal elrontani. Mit lehet tenni ez utóbbi esetben? Nos, az interneten jó pár helyről letölthetőek ingyenes illetve szabadon használható fontok. A leginkább használhatóak azok, amelyek a Microsoft oldalairól tölthetők le. Merészkedjünk be bátran az oroszlánbarlangba, az innen letölthető fontok (Andale Mono, Webdings, Trebuchet, Georgia, Verdana, Comic Sans MS, Arial, Arial Black, Impact, Times New Roman, Courier New) a Microsoft Internet Expolrerre építő webes stratégiájának a részei, de profitálhatnak belőle a linuxosok is. Bár a letölthető fájlok kiterjesztése "exe", egyszerűen unzipelhetők. Külön kiemelném, hogy ezen fontok többsége "junikódos", azaz a magyar karakterek is szerepelnek bennük, innen van az egyik kendvenc betűtípusom, a Trebuchet is, amelyet kifejezetten a képernyőről való olvasáshoz terveztek.
Megvizsgálhatjuk a nyomtatónkhoz adott CD-t, ha már linuxos driver nincs rajta, hátha van rajta legalább néhány szebb betűtípus, például az Epson nyomtatókhoz adott lemezekre általában szoktak fontokat tenni, gyakran több formátumban is (Type1, TrueType). A legtöbb disztribúcióba is bekerülnek TrueType csomagok, nekem ezekkel a fontokkal nem voltak túl jó tapasztalataim, egyes fontkezelő/konvertáló programok belefagynak a használatukba, karakterek hiányoznak belőlük... de lehet hogy az újabb csomagok jobb minőségűek.
A használatbavétel módja attól függ, hogy milyen verziójú a rendszerünkre telepített XFree86. Először lássuk a 4-es XFree-t! A dolog itt meglehetősen egyszerű, hiszen a 4-es verziók már beépített TrueType-támogatással rendelkeznek (ha disztribúciónk összeállítói engedélyezték fordításkor ezt az opciót), a fontok telepítése szinte nem is különbözik a hagyományos eljárástól.
Az xfontsel megmutatja milyen fontjaink vannak
Munkánk eredményességéről meggyőződhetünk, ha futtatjuk az xfontsel programot és kicsit szétnézünk a rendelkésünkre álló betűtípusok között. A FontPath helytelen beállítása azonban könnyen vezethet az X működésképtelenégéhez is. Ha a rendszer nem találja a "fixed" nevű fontot, akkor nem indul el a grafikus felület, ekkor másoljuk vissza a konfigurációs fájlt, és ügyeljünk arra, hogy semmit ne töröljünk ki belőle a következő próba során.
Kicsit nehezebb lesz a dolgunk, ha régebbi, például 3.3.6-os X-et használunk. A régi X-eket úgynevezett fontszerverrel kell kiegészítenünk, ha TrueType fontokat is szeretnénk látni. Az egyik legjobb, amely képes a unicode-os fontokból a magyar karaktereket is megjeleníteni, az xfs nevű fontszerver (a legtöbb disztribúció tartalmazza). A fontszerveres megoldás esetén nem az X belső rutinjai kezelik a fontokat, így egy picit több memóriára (körülbelül plusz 1MB) van szükség. A xfs használata során az X konfigurációs fájljában csak egyetlen FontPath sort szokás szerepeltetni, amely egy portra mutat, ezt a FontPath "unix/:portszám" bejegyzéssel tehetjük meg. Mandrake és RedHat esetén ez a sor így néz ki: FontPath "unix/:-1". A tényleges FontPath-t pedig a fontszerver konfigurációs állományában (/etc/X11/fs/config) kell megadni, a catalogue = után egy vesszővel elválasztott listában kell felsorolni a fontokat tartalmazó könyvtárakat. Továbbá ügyelnünk kell arra, hogy a fontszerver már fusson, amikor az X elindul, különben nem fog működni a grafikus felület.
Kedvcsináló az xfs konfigurálásához...
Most, hogy már tudjuk mit kell tennünk, lássunk egy részletes példát, amelyben 4-es XFree-re egy, a Microsoft-tól letöltött betűcsaládot telepítünk. Van egy könyvtárunk, legyen ez a /usr/local/ujfontok néhány ttf fájllal. Első lépésként létre is hozhatjuk a fonts.dir fájlt a ttmkfdir programmal és mivel ezek skálázható fontok, érdemes a fonts.scale fájlt is létrehozni, ehhez elég egy link a fonts.dir-re.
[/usr/local/ujfontok]# ls -la total 982 drwxr-xr-x 2 root root 1024 Mar 13 14:49 ./ drwxr-xr-x 14 root root 1024 Mar 13 14:48 ../ -rw-r--r-- 1 root root 275572 May 11 2000 arial.ttf -rw-r--r-- 1 root root 286620 May 11 2000 arialbd.ttf -rw-r--r-- 1 root root 224692 May 11 2000 arialbi.ttf -rw-r--r-- 1 root root 206132 May 11 2000 ariali.ttf [/usr/local/ujfontok]# ttmkfdir > fonts.dir [/usr/local/ujfontok]# ln -s fonts.dir fonts.scale
A sok vesződés eredménye: a KDE2-ben rengeteg
alkalmazás használja a Unicode-ot, ez itt a KMail
Vizsgáljuk meg mi szerepel a fonts.dir fájlban! Egyelőre annyit tudunk a betűinkről, hogy unicode-osak és a betű neve "Arial", lássuk milyen információkat szedett össze a ttmkfdir!
[/usr/local/ujfontok]# cat fonts.dir 90 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-dosencoding-cp850 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-dosencoding-cp437 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-tcvn-5712 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-viscii1.1-1 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-microsoft-cp1255 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-tatar-cyr ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-microsoft-cp1251 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-koi8-u ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-koi8-r ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-9e ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-15 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-14 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-13 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-10 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-9 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-8 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-7 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-5 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-4 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-3 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-2 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-1 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-dosencoding-cp850 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-dosencoding-cp437 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-tcvn-5712 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-viscii1.1-1 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-microsoft-cp1255 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-tatar-cyr arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-microsoft-cp1251 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-koi8-u arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-koi8-r arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-9e arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-15 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-14 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-13 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-10 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-9 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-8 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-7 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-5 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-4 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-3 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-2 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-1 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-dosencoding-cp850 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-dosencoding-cp437 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-tcvn-5712 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-viscii1.1-1 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-microsoft-cp1255 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-tatar-cyr arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-microsoft-cp1251 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-koi8-u arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-koi8-r arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-9e arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-15 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-14 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-13 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-10 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-9 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-8 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-7 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-6 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-5 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-4 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-3 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-2 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-1 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-dosencoding-cp850 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-dosencoding-cp437 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-tcvn-5712 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-viscii1.1-1 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-microsoft-cp1255 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-tatar-cyr arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-microsoft-cp1251 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-koi8-u arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-koi8-r arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-9e arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-15 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-14 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-13 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-10 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-9 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-8 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-7 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-6 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-5 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-4 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-3 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-2 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-1
Hát... szép, szép, de mire való ez a sok butaság, ha felét sem használjuk? Elég, ha csak a nyugat- és kelet-európai kódtáblákra vonatkozó sorokat hagyjuk meg, ugyanakkor még hiányzik az iso10646-1. Az esetek többségében ez a három (iso8859-1, iso8859-2, iso10646-1) bőven elég, akinek nem, az pedig úgyis pontosan tudja, hogy melyik az a kódlap, ami kell még neki. Célszerű egy kis beavatkozással lecsökkenteni a fonts.dir méretét, csak arra figyeljünk, hogy a fájl egy számmal kezdődik, ez a fájlban szereplő bejegyzések száma, ha bejegyzéseket törlünk, akkor módosítani kell e számot is. A feladatot elvégzi nekünk példának okáért a következő parancssor: sed s/koi8-r/iso10646-1/ fonts.dir | grep -E "iso8859-1$|iso8859-2$|iso10646-1$" > fonts.dir.uj
[/usr/local/ujfontok]# cat fonts.dir.uj ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso10646-1 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-2 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-1 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso10646-1 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-2 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-1 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso10646-1 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-2 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-1 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso10646-1 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-2 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-1
Egy dolog hiányzik még a fájlunkból, a bejegyzések száma, ez itt most 12 lesz, hiszen mindegyik fájlunk háromszor szerepel a végleges listában. Tehát a fonts.dir.uj elejére írjuk be a sorok számát, majd nevezzük át fonts.dir-re. Az eredmény:
[/usr/local/ujfontok]# cat fonts.dir 12 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso10646-1 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-2 ariali.ttf -monotype-Arial-medium-i-normal--0-0-0-0-p-0-iso8859-1 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso10646-1 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-2 arialbi.ttf -monotype-Arial-bold-i-normal--0-0-0-0-p-0-iso8859-1 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso10646-1 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-2 arialbd.ttf -monotype-Arial-bold-r-normal--0-0-0-0-p-0-iso8859-1 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso10646-1 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-2 arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-1 [/usr/local/ujfontok]# ls -la total 983 drwxr-xr-x 2 root root 1024 Mar 13 15:50 ./ drwxr-xr-x 14 root root 1024 Mar 13 14:48 ../ -rw-r--r-- 1 root root 275572 May 11 2000 arial.ttf -rw-r--r-- 1 root root 286620 May 11 2000 arialbd.ttf -rw-r--r-- 1 root root 224692 May 11 2000 arialbi.ttf -rw-r--r-- 1 root root 206132 May 11 2000 ariali.ttf -rw-r--r-- 1 root root 790 Mar 13 15:49 fonts.dir lrwxrwxrwx 1 root root 9 Mar 13 15:49 fonts.scale
A fontokat tartalmazó könyvtár előkészítésén túl is vagyunk, már csak az X-et kell beállítanunk, és működnek a szép új fontok. Az /etc/X11/XF86Config-4 fájlban keressük meg a Section "Files" részt, ez általában a fájl legelején szokott lenni, és adjuk hozzá a most előkészített könyvtárat a FontPath-hoz! A fájl nagyjából így fog kinézni a kérdéses helyen, de valószínűleg kicsit más FontPath-okkkal:
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/local/fonts/Default:unscaled" FontPath "/usr/local/fonts/TrueType" FontPath "/usr/local/ujfontok" EndSection
Ha ez megvan, indítsuk újra az X-et... és készen is vagyunk. Ezek után elkezdhetjük átállítgatni a különböző programjainkat az új fontok használatára... Megérte, igaz?