Fonty - počeštění fontu

Tento krátký dokument vysvětluje, jak počeštit existující font, tj. jak k němu přidat české znaky. Zatím se předpokládá převod na font pro TeX, ale domnívám se, že by mělo jít převést na normální linuxový Type-1 font a snad i zpět na TrueType. 

1. Základy

VAROVÁNÍ: Fakta zde uvedená mohou být nepřesné, neb pochází z mých chabých zápisků z přednášky, nicméně to podstatné by mělo být zachyceno správně.

Metrika fontu
Zjednodušeně je to soubor s definicemi rozměrů jednotlivých znaků. Sazečský systém jako např. TeX vůbec nemusí pracovat s fontem, stačí mu samotná metrika, font (tj. obrázky znaků) se přidá až při samotném konečném sázení textu.
Hintované fonty (? "bluevalues")
Navíc obsahují nápovědy, jak font nakreslit na zařízení s malým rozlišením (jako obrazovka) bez zošklivění. Pokud některé znaky ošklivě přesahují nahoru či dolů, jedná se o nehintovaný font. Užito např. v .pdf.

Soubory pro Type1 fonty:

Některé typy fontů:

2. Nástroje

Zde uvedené nástroje jsou Open Source nebo freewareové, lze najít a stáhnout na internetu.

Nástroje z balíku t1utils (volně dostupný pro LINUX & spol., přeneseno i na Windows):

FontForge (dříve PfaEdit) umožňuje vytvořit, upravit a převádět fonty v řadě formátů. Dostupný pod Linux atd., pod Windows za pomoci Cygwin.

3. Počeštění fontu

Pojďme nečeský TrueType font můjfont.ttf převést na český font pro TeX. Výsledkem nebude TrueType font, protože bychom do něj - předpokládám - museli dopsat všechny chybějící české znaky, my však jen zajistíme existenci háčku a čárky (a kroužku) a chytrý prográmek pana Olšáka nám upraví ... tak, že české znaky budou generovány jako znak + interpunkce.

  1. Otevřeme v FontForge a:
    1. Převedeme do kódování Adobe Standard (tento krok není nutný, ale můj učitel jej upřednostňuje, protože s tím kódováním umí zacházet).
    2. Pokud font nemá znak háček (ˇ), tak jej dokreslíme - například zkopírujeme a otočíme znak stříška (^), to lze přetahováním myši.
    3. Generujeme metriku pfb, přitom změníme střední "m výšku" z té pro ttf (1024?) na tu pro Type-1 (1000?).
  2. Do metriky (.afm; proč afm?) přidáme následující informace (vezměme příklad písmene 'ř'; linuxový program P. Olšáka a2ac - afm to afm add composites - udělá automaticky 1. krok pro všechny písmena):
    1. .afm převést na .afm s dodanými informacemi o rcaron (ř) atd. + kerningové informace + informace, že rcaron je kompozitní znak z r + caron
    2. Generuj pomocí afm2tfm  *.tfm z *.afm, neužívej xl2 encoding (překódování uděláno ve virtuálním fontu dík a2ac), též vytvoří *.vf, který budu potřebovat.

$ a2ac font-metrics.afm cscorr.tab cfont-metrics.afm  #cscorr.tab = def. změn
$ afm2tfm cfont-metrics.afm -t xl2.enc -v cfont-metrics rfont-metrics.afm
$ vptovf cfont-metrics.vpl cfont-metrics.vf cfont-metrics.tfm

rfont-metrics.afm a cfont-metrics.vf jsou vstupem pro převaděč dvips (.dvi na .ps). Do konfiguračního souboru dvips jménem psfonts.map musíme přidat řádek

rfont PostScript-Font </cesta/k/souboru.pfb  # část začínající < jen pokud font není v RIPu

V TeXu zavedeme pomocí "\font\mujnovyfont=cfont", užito bude kódování xl2.enc.

4. Převedení českého TrueType fontu pro TeX

Např. Arial.ttf (ten lze jinak nahradit bezplatnou Helveticou).

  1. Otevřeme v FontForge a:
    1. Zmenšíme počet kontrolních bodů (?příkaz "simplify"?)
    2. Generujeme metriku pfb, přitom změníme střední "m výšku" z té pro ttf (1024?) na tu pro Type-1 (1000?).
    3. Konvertujeme na Type-1, přitom ignorujeme varování, že se jedná a dvou-byteový font (tváří se jako Unicode, ale většina znaků je stejně prázdná); v TeXu stejně užiji vlastní kódování (xl2). Výstupem bude ArialMT.afm a ArialMT.pfb.
  2. Převedeme na tfm příkazem afm2tfm ArialMT.afm -T xl2.enc -v aarr8z rarial, výstupem bude řádek k vepsání do psfonts.map, který budeme muset upravit - na konec řádku připíšeme "<cesta/k/ArialMT.pfb". Pozn.: aarr8z je standardní jméno pro virtuální font (proto -v), kde 1.a=Microsoft, ..., 8z je standardní konec. Výstupem též aarr8z.vpl.
  3. Převedeme příkazem vptovf aarr8z.vpl (bude nás varovat, že zaokrouhlil, neb metrika má jen 15 výšek - nevadí). Z bodu 2. a 3. máme soubory, jež nepotřebujeme: *.vf, *.vpl a rarial.tfm; stačí nám .pfm, metrika .tfm a poznámka v psfonts.map.

Užití v TeXu: deklarujeme pomocí "\font\arial=aarr8z", užití např.: "\arial řščžů".

 

5. Další zdroje informací

6. Odkazy