Hlavní navigace

Nejsnazší cesta k TrueType fontům

Michal Krause 24. 3. 1999

Každý kdo má co do činění s kombinací XFree86 a Linux asi ví, že fonty, které jsou přibaleny přímo v distribuci se sice dobře hodí na tlačítka, popisky nebo záhlaví oken, ale třeba v prohlížeči www stránek už je to slabší, o použití v grafických programech typu Gimp ani nemluvě. Font server sice umí pracovat s postscriptovými fonty Type1, ale těch je zase v kódování ISO8859-2 po čertech málo. Jak z toho tedy ven?

Celkem snadno: použitím font serveru s podporou TrueType fontů, které se běžně používají ve Windows. Možná vůbec nevíte, že to jde, možná jste jenom příliš pohodlní (jako já :) na to, abyste patchovali zdrojáky Xek. Pokud tomu tak je, je tento článek určen přesně vám. Popíšu zde asi nejjednodušší postup, jak zabudovat podporu TrueType fontů do Xek s minimálními zásahy do systému. Sluší se ovšem říct, že tento postup je v podstatě pouze překladem dokumentu TrueType for XFree86 Mini-Howto, jehož autorem je Ying Zhang. Ve snaze zvýšit svoje zásluhy jsem doplnil několik poznatků z praxe :)


Co budete potřebovat

  • XFree86 3.3.x (ověřeno s 3.3.2 a 3.3.3, starší verze by měly rovněž fungovat)
  • freetype 1.2 (případně ještě freetype-devel při použití rpm balíků)
  • xfsft 1.0.3
  • ttmkfdir
  • a samozřejmě nějaké TrueType fonty

Všechny uvedené programy v rpm jsem umístil sem. Pokud nepoužíváte RedHat, hledejte na domovských stránkách jednotlivých programů.


Instalace
V případě použití rpm balíků je instalace snadná:
rpm -Uvh freetype-1.2-i386.rpm
rpm -Uvh freetype-devel-1.2-i386.rpm
rpm -Uvh xfsft-1.0.3–1.i386.rpm

Pokud použijete zdrojové kódy, bude nutné programy a knihovny zkompilovat. Popis kompilace by byl ovšem nad rámec tohoto dokumentu.
Dalším krokem, už opět společným pro všechny distribuce, je kompilace programu ttmkfdir. Ta se provádí pomocí jediného povelu:

make FREETYPE_BASE=/usr

parametr FREETYPE_BASE určuje základní adresář, kde je knihovna FreeType nainstalována. Při ruční kompilaci knihovny půjde pravděpodobně o adresář /usr/local


Vytvoření adresářů s fonty
Nyní je již vše potřebné připraveno a tak můžeme přikročit přímo k instalaci fontů. Pokud chcete sdílet stejné fonty s Windows, je možné udělat pouze symbolický odkaz na adresář z Windows

ln -s /mnt/c/window­s/fonts /usr/X11R6/lib/­X11/fonts/ttf

V případě, že instalujete nové fonty pouze pro Linux, vytvořte si pro ně adresář a tam je zkopírujte.

Ať už jste adresář pouze přilinkovali z Windows nebo založili nový, je nyní třeba vytvořit dva soubory s informacemi o fontech: fonts.scale a fonts.dir. To provedeme pomocí programů ttmkfdir, který jsem si zkompilovali již dříve, a mkfontdir, který je součástí XFree86:

cd /usr/X11R6/lib/­X11/fonts/ttf
ttmkfndir >fonts.scale
mkfontdir


Konfigurace programu xfsft
Důležitý je obsah dvou souborů. Prvním z nich je soubor /usr/etc/xfsft­.conf, který vypadá přibližně takto:

clone-self = off
client-limit = 20
catalogue = /usr/X11R6/lib/­X11/fonts/Type1,
      /usr/X11R6/lib/­X11/fonts/mis­c,
      /usr/X11R6/lib/­X11/fonts/Spe­edo,
      /usr/X11R6/lib/­X11/fonts/75dpi,
      /usr/X11R6/lib/­X11/fonts/ttf
      /usr/X11R6/lib/­X11/fonts/100dpi
use-syslog = off
error-file = /var/log/xfsft-errors.log
default-point-size = 120
default-resolutions = 100,100,75,7

Podstatné jsou cesty k jednotlivým adresářům s fonty v parametru catalogue. Druhý soubor je vlastní konfigurace XFree86 (/etc/X11/XF86Con­fig). V něm je třeba zakomentovat všechny existující řádky FontPath a přidat jednu novou řádku dle příkladu. Definice cest k fontům by po těchto úpravách měla vypadat přibližně následovně:

FontPath „tcp/localhos­t:7100“
#FontPath „/usr/X11R6/lib/­X11/fonts/Type1“
#FontPath „/usr/X11R6/lib/­X11/fonts/Spe­edo“
#FontPath „/usr/X11R6/lib/­X11/fonts/75dpi“
#FontPath „/usr/X11R6/lib/­X11/fonts/100dpi“

Moudrý čtenář již jistě pochopil, že se všechny cesty k fontům přesunuly do režie xfsft, který se o ně už postará tak, jak to doposud dělal interní font server z XFree. Asi namítnete, že to byla zbytečná práce. Nebyla. Xfsft má totiž jednu geniální vlastnost. Umí provádět překódování za běhu, což v praxi znamená, že lze font, který je v kódování CP1250 nebo Unicode použít jako by byl v kódování ISO8859–2. A tahle báječná funkce není limitovaná jenom na TT fonty, ale funguje i s Type1 (vyzkoušeno) a Speedo fonty.

Pokud jste toto všechno provedli, spusťte program xfsft. Při použití rpm
/etc/rc.d/init­.d/xfsft start
případně ručně
/usr/X11R6/bin/­xfsft -port 7100 -config /usr/etc/xfsft.conf

Program xfsft musí vždy běžet před startem Xek. Pak už stačí jenom spustit (nebo restartovat) Xka a to je vše.


Ještě jedna praktická rada: pokud je instalovaný font prokazatelně český a přesto česky nepíše (nebo třeba píše místo všech znaků čtverečky), pomůže upravit soubor fonts.scale tak, že na pro inkriminovaný font změníte kódování na iso8859–2. Kódování je úplně poslední údaj na řádce a těsně mu obvykle předchází sekvence znaků –0-
Po této úpravě je nutné spustit znovu mkfontdir a restartovat xfsft i Xka. Neposlušné fonty se pak umoudří.

A úplně na závěr snad už jenom pár odkazů na fonty ke stažení:
Microsoft Free TTF
Acid Fonts
The Font Ring

Našli jste v článku chybu?

19. 2. 2000 23:44

David Belohrad (neregistrovaný)

Zajimalo by me jakym zpusobem lze vyrobit soubory
fonts.alias a fonts.dir. Zkousel jsem s tim experimentovat
a nejak se mi zadarilo par souboru spatne prepsat
a nevim jak to vratit zpet. Take by me zajimalo,
ve kterem souboru je ulozeno ktere fonty se pouzivaji
napr na napisy tlacitek apod.
Diky







Lupa.cz: E-shopy: jen sleva už nestačí

E-shopy: jen sleva už nestačí

Podnikatel.cz: Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Vitalia.cz: Jak koupit Mikuláše a nenaletět

Jak koupit Mikuláše a nenaletět

Podnikatel.cz: Platební brány a EET? Stále s otazníkem

Platební brány a EET? Stále s otazníkem

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

Podnikatel.cz: Dárky v podnikání. Jak je uplatnit v daních?

Dárky v podnikání. Jak je uplatnit v daních?

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

DigiZone.cz: Další dva kanály nabídnou HbbTV

Další dva kanály nabídnou HbbTV

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně