14.3. Instalace a konfigurace fontů

V systému SUSE Linux je instalace dalších fontů velmi jednoduchá. Stačí když fonty překopírujete do určité adresářové struktury X11, (viz odstavec 14.3.1.2 – „Systém písem X11 Core“), tak aby je mohl používat nový systém pro zobrazování fontů - xft. Instalační adresář s fonty by tedy měl být podadresářem adresářů, jenž jsou uvedeny v /etc/fonts/fonts.conf (viz odstavec 14.3.1.1 – „Xft“).

Fonty můžete (jako uživatel root) překopírovat ručně do adresáře jako je např. /usr/X11R6/lib/X11/fonts/truetype. Instalaci fontů lze provést také pomocí Ovládacího centra KDE - položka Vzhled a motivy->Písma.

Místo kopírování fontů můžete vytvořit také symbolické odkazy na fonty, které jsou uloženy na připojeném diskovém oddílu se systémem Windows. Pak stačí spustit příkaz SuSEconfig --module fonts.

Příkaz SuSEconfig --module fonts spustí skript /usr/sbin/fonts-config, který zajistí instalaci fontů. Pokud vás zajímá, co přesně tento skript dělá, podívejte se do jeho manuálové stránky např. příkazem (man fonts-config).

Ať už se jedná o písma bitmapová, TrueType, OpenType nebo Type1 (Postskriptová), tento postup je stejný. Fonty všech těchto typů mohou být umístěny v jednom adresáři. Jedinou výjimkou jsou tzv. CID-keyed fonty (tyto fonty umožňují kombinovat znaky různých kódování a používají se pro japonštinu, čínštinu a podobné jazyky). U těchto písem se instalační postup poněkud liší, viz odstavec 14.3.1.3 – „Písma s kódováním CID (CID-Keyed)“.

14.3.1. Systémy písem

X.Org používá dva naprosto rozdílné systémy písem: původní X11 Core-Font systém a nově navržený Xft/fontconfig. V následující části si stručně popíšeme jejich charakteristiku.

14.3.1.1. Xft

Při vývoji Xft byl od počátku kladen důraz na podporu škálovatelných písem včetně jejich vyhlazování. Na rozdíl od X11 Core písem nejsou písma spravována X serverem, ale jednotlivými aplikacemi. Jednotlivé programy získaly přímý přístup ke konfiguračním souborům písem a tím i kontrolu na interpretací jednotlivých znaků. Zároveň je díky tomu zaručeno, že tisk z~těchto programů bude vypadat přesně tak, jak vidíte na obrazovce.

V systému SUSE Linux obě velká grafická prostředí KDE a GNOME, program Mozilla i řada dalších aplikací již standardně Xft používá a tento systém je dnes používán více než tradiční X11-Core.

Systém Xft používá při vyhledávání písem a jejich interpretaci knihovnu fontconfig. Její chování lze ovlivnit globálním konfiguračním souborem /etc/fonts/fonts.conf a uživatelskými konfiguračními soubory ~/.fonts.conf. Každý konfigurační soubor musí začínat touto hlavičkou:


<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

a končit patičkou

</fontconfig>

Každý adresář s fonty je v konfiguračním souboru definován na samostatném řádku následujícím způsobem:

<dir>/usr/local/share/fonts/</dir>

Není však nutné přidávat do souboru nový záznam pro každý adresář. Jako výchozí uživatelský adresář s písmy je v /etc/fonts/fonts.conf nastaven adresář ~/.fonts. Chcete-li si tedy nainstalovat další písma, nakopírujte je do ~/.fonts ve svém domovském adresáři.

Můžete zde také definovat pravidla určující vzhled písem. Takto například vypnete vyhlazování pro všechna písma:


<match target="font">
 <edit name="antialias" mode="assign">
  <bool>false</bool>
 </edit>
</match>

Vyhlazování pro konkrétní písma pak povolíte např. takto:


<match target="font">
 <test name="family">
  <string>Luxi Mono</string>
  <string>Luxi Sans</string>
 </test>
 <edit name="antialias" mode="assign">
 <bool>false</bool>
 </edit>
</match>

Ve svém výchozím nastavení používá většina aplikací písma sans-serif (nebo jejich ekvivalent sans), serif, nebo monospace. Nejde o skutečné fonty, ale o aliasy, které podle jazykového nastavení teprve ukazují na konkrétní písma.

Uživatel si může vytvořit vlastní soubor ~/.fonts.conf a nasměrovat zde tyto aliasy na svá oblíbená písma:


<alias>
 <family>sans-serif</family>
 <prefer>
  <family>FreeSans</family>
 </prefer>
</alias>
<alias>
 <family>serif</family>
 <prefer>
  <family>FreeSerif</family>
 </prefer>
</alias>
<alias>
 <family>monospace</family>
 <prefer>
  <family>FreeMono</family>
 </prefer>
</alias>

Protože systém aliasů používají téměř všechny aplikace, ovlivní tyto změny celý systém. Máte tak možnost centrálně nastavit používání vašich oblíbených písem a nemusíte měnit konfiguraci v každé aplikaci zvlášť.

Příkazem fc-list získáte seznam nainstalovaných písem. Pokud vás zajímá pouze určitý typ písem, např. škálovatelný (:outline=true) s hebrejskými znaky (:lang=he), obsahující ve jméně slovo (family) a chcete znát jeho styl (style), řez (weight) a název souboru, v němž se písmo nachází, zadejte příkaz:


    fc-list ":lang=he:outline=true" family style weight file

Výstup tohoto příkazů může vypadat např. takto:

    

/usr/X11R6/lib/X11/fonts/truetype/FreeSansBold.ttf: FreeSans:style=Bold:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSerif.ttf: FreeSerif:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeMono.ttf: FreeMono:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSans.ttf: FreeSans:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoBold.ttf: FreeMono:style=Bold:weight=200

Důležité parametry příkazu fc-list jsou:

Tabulka 14.2. Vybrané parametry příkazu fc-list

Parametr

Popis a možné hodnoty

family

Název rodiny písma, např., FreeSans.

foundry

Výrobce písma, např., urw.

style

Styl písma, např. Medium, Regular, Bold, Italic, Heavy.

lang

Jazyky, které písmo podporuje, např. cs pro češtinu, ja pro japonštinu, zh-TW pro tradiční čínštinu, zh-CN pro zjednodušenou čínštinu atd.

weight

Tloušťka písma, např., 80 pro normální, 200 pro tučné.

slant

Šikmost 0 pro normální písmo, 100 pro kurzívu.

file

Název souboru s písmem.

outline

true pokud se jedná o obrysová písma, false pro ostatní.

scalable

true pokud se jedná o škálovatelná písma, false pro ostatní.

bitmap

true u bitmapových písem, false u ostatních.

pixelsize

Velikost písma v pixelech. Má význam pouze u bitmapových písem.

14.3.1.2. Systém písem X11 Core

Systém X11 Core byl navržen v~roce 1987 pro zpracování monochromatických bitmapových písem v X11R1. Dnes podporuje kromě bitmapových písem i škálovatelná písma jako jsou fonty Type1, TrueType, OpenType a písma typu CID-keyed. Již velmi dlouho jsou podporována také unicodová písma. Zdaleka však nenabízí takové možnosti jako Xft/fontconfig.

Například u škálovatelných písem není implementována podpora antialiasingu. Zpracování fontů se znaky v mnoha jazycích může trvat déle. Také použití Unicodových písem vede ke zpomalení a vyžaduje více paměti.

Systém písem X11 Core zdědil několik slabin. Je zastaralý a nedá se rozumným způsobem rozšiřovat. Z důvodu zpětně kompatibility je stále zachováván při životě, nicméně je vhodné ho nahradit moderním systémem Xft/fontconfig, pokud je to možné.

X server dokáže zpracovat pouze adresáře splňující jednu z následujících podmínek:

  • Adresář je uveden v direktivě FontPath v části Files konfiguračního souboru /etc/X11/XF86Config.

  • Adresář obsahuje platný soubor font.dir (vytvořený skriptemSuSEconfig).

  • Adresář není za běhu X serveru vyřazen ze seznamu adresářů s fonty příkazem xset -fp.

  • Adresář je zařazen za běhu X serveru do seznamu adresářů s fonty příkazem xset +fp.

Pokud X server už běží, lze nově nainstalované (tj. do příslušných adresářů nakopírované) fonty zpřístupnit příkazem xset fp rehash. Tento příkaz je spuštěn skriptem SuSEconfig --module fonts.

Příkaz xset potřebuje přímý přístup k běžícímu X serveru, skript SuSEconfig --module fonts tedy musí být spuštěn ze shellu, který k němu přístup má. Toto lze nejjednodušeji zajistit získáním administrátorských oprávnění, tj. zadáním příkazu su and hesla uživatele root. Příkaz su předá přístupová oprávnění uživatele, který spustil X server, administrátorskému shellu. Korektní instalaci písem a jejich dostupnost prostřednictvím systému X11 core fontů ověříte příkazem xlsfonts, jenž vrátí právě seznam všech dostupných písem.

SUSE Linux používá ve výchozím nastavení kódování UTF-8. Je tedy vhodné dávat přednost fontům typu Unicode, jež poznáte tak, že ve výstupu příkazu xlsfonts bude jméno fontu končit na iso10646-1. Seznam všech Unicodových písem nainstalovaných na vašem systému získáte příkazem xlsfonts | grep iso10646-1. Protože téměř všechna písma typu Unicode ze systému SUSE Linux obsahují alespoň znaky evropských abeced, nahradilo kódování Unicode předchozí kódování iso-8859-*).

14.3.1.3. Písma s kódováním CID (CID-Keyed)

Narozdíl od jiných typů písem nelze písma s kódováním CID umístěna v libovolném adresáři. Musíte je instalovat do adresáře /usr/share/ghostscript/Resource/CIDFont. Pro Xft/fontconfig nehraje sice umístění fontů žádnou roli, ale Ghostscript a systém fontů X11 Core vyžadují, aby se nacházela právě zde.

[Tip]Tip

Další informace o fontech v prostředí X11 najdete na stránce http://www.xfree86.org/current/fonts.html.