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:
- *.afm ... Adobe Font Metrics pro Type 1
- *.pfb/*.pfa ... Adobe Type 1 Postscript font, liší se tím, že .pfa
je textový a již nepoužívaný, .pfb je jeho binární verze. Nepřenosné na
Macintosh.
- (*.tfm ... TeX Font Metrics)
Některé typy fontů:
- Type 1 - typ PostScriptových fontů, vyvinula firma Adobe.
- Type 3 - typ PostScriptových fontů často defaultně užívaný TeXem a
vyznačující se ohyzdným zobrazením v Adobe Acrobat Reader (chyba Adobe),
měl by být proto nahrazen pomocí Type-1.
- TrueType - užívaný hlavně na MS Windows; přípona .ttf. Microsoft &
Apple.
- OpenType - (?) metriky i samotný font má v jediném souboru; ? obdoba
TrueType.
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):
- t1ascii <vstupní_metrika.pfb> <výstupní_metrika.pfa>
- t1disasm <font.pfb> <font-rozšifrovaný.pps> // kód k šifře
je veřejně známý
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.
- Otevřeme v FontForge a:
- 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).
- 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.
- Generujeme metriku pfb, přitom změníme střední "m výšku" z té pro
ttf (1024?) na tu pro Type-1 (1000?).
- 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):
- .afm převést na .afm s dodanými informacemi o rcaron (ř) atd. +
kerningové informace + informace, že rcaron je kompozitní znak z r +
caron
- 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).
- Otevřeme v FontForge a:
- Zmenšíme počet kontrolních bodů (?příkaz "simplify"?)
- Generujeme metriku pfb, přitom změníme střední "m výšku" z té pro
ttf (1024?) na tu pro Type-1 (1000?).
- 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.
- 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.
- 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í
- Dokumentace k programu a2ac P. Olšáka (viz např. google).
- Kniha P. Olšáka Typografický systém TeX.
6. Odkazy