Fontforge: fonty, glyfy a vektorová grafika

30. 4. 2025
Doba čtení: 6 minut

Sdílet

Pracovní stul s návrhem nového písma
Autor: Shutterstock
V tomto krátkom seriáli sa naučíme si v programe Fontforge vytvárať vlastné vektorové písmo. V dnešnom prvom diele sa pozrieme na celkový proces vytvorenia fontu a nabudúce sa povenujeme tvorbe glyfov.

Aj keď čítame tento text, akoby bol na papieri, v skutočnosti je v počítači uložený ako postupnosť čísiel – bajtov, z ktorých sa vytvorí rastrový obrázok a ten si používateľ „prečíta“. Kým kódovanie (napr. ASCII alebo UTF-8) určuje sémantickú hodnotu bajtu alebo bajtov, tak font písma (rozumej nejaký konfiguračný súbor) s názvom písma (patriaci do nejakej rodiny písma) určuje, ako sa výsledný „text“ vyrenderuje (napr. či pätkovo alebo bezpätkovo).

Co se dozvíte v článku
  1. Linux, fonty a softvér
  2. Pojmy
  3. Pred vytváraním
  4. Private Use Areas (Unicode)
  5. Glyf
  6. Prostredie programu
  7. Všeobecné nastavenia fontu
  8. Nastavenie kódovania
  9. Vytvorenie fontu
  10. Použitie
  11. Vygenerovanie fontu v kocke
  12. Ďalšia literatúra

Výsledný rastrový obrázok si môžeme vytvoriť aj tak, že ho budeme vytvárať ako výstup zostrojený prostredníctvom vektorovej grafiky. Takto vektorovo zostrojený obrázok môžeme rôzne zväčšovať/zmenšovať bez toho, aby sme zhoršovali zobrazovaciu kvalitu. Takáto realizácia glyfov má tiež aj svoje technické ťažkosti.

Nasleduje príklad uloženia slova „duša“ v počítači v kódovaní UTF-8 (najpoužívanejšie kódovanie na internete).

Slovo „duša“ v UTF-8.
Uloženie
RAW
bajty
Desiatkovo 100 117 197 161 97
Šestnástkovo 64 75 C5 A1 61
Význam
UTF-8 Šestnástkovo 64 75 C5A1 61
Unicode Kód U+0064 U+0075 U+0161 U+0061
Názov LATIN SMALL LETTER D LATIN SMALL LETTER U LATIN SMALL LETTER S WITH CARON LATIN SMALL LETTER A
Zobrazenie
Glyf d u š a

Linux, fonty a softvér

V Linuxe sú fonty štandardne umiestnené v systémovom priečinku /usr/share/fonts (systémové) alebo v používateľskom priečinku $HOME/.local/share/fonts. Pre rýchlejšiu prácu s nimi sú fonty indexované (pozri systémové príkazy začínajúce s  fc-).

Program Font Manager (GTK program) slúži na správu fontov. Umožňuje fonty indexovať, prezerať a vypísať podrobnosti (vrátane zoznamu a náhľadu znakov, ktoré sú vo fonte zahrnuté).

Program FontForge, preklad názvu „vyhňa pre fonty“, vie fonty vytvárať a upravovať. Dokáže importovať glyfy zo SVG súborov alebo vložiť obrázok ako „náčrt“, na podklade ktorého môžeme vytvárať glyf.

Pojmy

Pre upresnenie: V tomto texte budeme pod pojmom „písmo“ alebo „font“ rozumieť jeden jedinečný font s jedinečným názvom rodiny písma a s jednou jedinečnou „implementáciou“. Používaný je softvéru FontForge vo verzie 20230101 (posledná stabilná verzia). Daná verzia programu nie je preložená do slovenčiny a češtiny.

Pred vytváraním

Predtým, než ideme nejaký font vytvárať alebo upravovať, potrebujeme o ňom vedieť toto:

  • či je pätkové alebo nepätkové – t. j. či má „ozdobné“ konce glyfov,
  • či je proporcionálne alebo neproporcionálne – t. j. či všetky znaky majú konštantnú šírku,
  • aký použiť technický formát pre uloženie finálneho fontu,
  • aké použiť kódovanie znakov.

Na nasledujúcom obrázku môžeme v hornej tabuľke vidieť príklad nejakého textu, a preň je v dolnej tabuľke uvedený názov použitého fontu. Všimnime si rozdiely v proporcionalite (napr. porovnanie šíriek znaku i a veľkých písmen) a pri pätkovaní (napr. písmeno E). 

FontForge

Dôležité je aj zvolenie technického štandardu pre uloženie finálne písma, lebo od neho sa môže odvíjať:

  • šírka em – východisková šírka jedného znaku,
    • niektorý štandard fontov vyžaduje mať šírku znaku 1024 bodov (miesto 1000 b.),
  • typ kriviek.

Pokiaľ nie sme si istý, môžeme dať exportovať font (najlepšie na začiatku práce) a potom nás program môže (voliteľná možnosť) upozorniť na prípadné „konflikty“.

Ak tvoríme proporcionálne písmo, potom musíme pri ňom vziať v úvahu to, že znaky majú rôznu „vlastnú šírku znaku“. Napr. bezpätkové písmeno i je užšie ako také m.

V písme nemusíme mať zahrnuté všetky znaky kódovania, napr. také Unicode obsahuje veľa znakov, ale môžeme zahrnúť len niektoré znaky alebo nejakú skupinu znakov.

Ak nie sme nútení použiť určitý technický štandard pre uloženie finálneho výsledku, potom je vhodne zvoliť štandard OpenType s em šírkou 1000 bodov (neskoršia zmena z 1000 na 1024 bodov nie je veľmi problematická).

Private Use Areas (Unicode)

Pre nás je dobre vedieť, že štandard Unicode poskytuje rozsahy (nazvané Private Use Areas), ktoré sú určené pre vytváranie si vlastných sémantických znakov.

Prvý súkromný blok začína na adrese U+E000 („E“ si môžeme ľahko zapamätať odvodením od slova „extra“).

Glyf

Vo vektorovej reprezentácie je jeden glyf plocha alebo skupina samostatných plôch, ktorých každá plocha má zvyčajne uzavreté ohraničenie, ktoré je spojité a postupne popísané vektorovými priamkami a krivkami.

V nasledujúcom obrázku môžeme v hornej časti vidieť písmeno L, ktoré je ohraničené šiestimi bodmi a tie sú postupne vzájomne prepojené priamkami. Pri ľavom hornom vrchole môžeme vidieť začiatok vykresľovania ohraničenia objektu. Vnútornú plochu v uzavretej ohraničenej oblasti berie program automaticky ako plochu glyfu. O tom sa môžeme presvedčiť v náhľade znaku (dolná časť podobrázku).

Fontforge

Prostredie programu

Program má dva hlavné typy pracovných okien:

  • Prehľad znakov – zoznam/prehľad všetkých znakov.
  • Editovanie glyfov – práca s glyfom (detailnejšie v ďalšom diele).

Horné menu je v obidvoch typoch okien rovnaké.

V mene programu sú jednoznakové klávesové skratky písane veľkým písmom, aj keď v skutočnosti fungujú pri stlačení kláves s malými písmenami. Napríklad v programe napísaná skratka CTRL+C v skutočnosti funguje pri stlačení kláves Ctrl+c. V tomto seriáli sú jednoznakové klávesy uvádzané malým písmom (tak ako ich reálne stláčame), t. j. napr. CTRL+c.

Prehľad znakov

Prostredie tvorí prehľad znakov s ich pomenovaním.

Fontforge

Typy pomenovania znakov v prehľade

V prehľade glyfov môžeme zmeniť typ pomenovania znaku prostredníctvom horného menu cez ⇰ViewLabel Glyph By na hodnoty:

  • Glyph Image (Glyf obrázok) – ako náhľad je zobrazený glyf zo systémových fontov.
  • Name – Názov.
  • Unicode – ako možnosť Hexa.
  • Hexa – hodnota („poradie“) znaku zapísaná číselne v šestnástkovej sústave.

Všeobecné nastavenia fontu

Pri všeobecných nastaveniach fontu je nutné nastaviť dve veci: pomenovanie a písmovú osnovu. Tieto nastavenia sú prístupné cez ⇰ElementFont Info alebo CTRL+SHIFT+f. V okne vidíme vľavo položky prepínacieho menu a vpravo obsah daných kariet.

Pomenovanie

Fontforge

Možnosti nastavenia:

  • Fontname (Názov fontu) – „technický“ názov.
    • Vhodné, aby bol názov bez medzier.
  • Family name (Názov rodiny) – skupinové označenie.
    • Vhodné vtedy, ak sú zvlášť implementované aj iné varianty fontu.
  • Name for Humans (Ľudské pomenovanie).
    • Môže byť aj bez medzier.
  • Weight (Širka) – typ šírky znaku.
    • Východiskovo je „Regular“, ale môže obsahovať aj iné hodnoty.
  • Version (Verzia) – verzia fontu.
  • Copyright (Autorské práva).

Vhodné je, aby Fontname, Family name a Name for Humans boli globálne jedinečné.

Písmová osnova

Pre nastavenia základnej charakteristiky písmovej osnovy zvolíme v ľavom menu položku General.

Fontforge

Možnosti nastavenia:

  • Ascent – výška hornej časti znaku.
  • Descent – výška dolnej časti znaku.
  • Em size – Em veľkosť.
  • Italic Angle – Uhol zošikmenia.
  • Underline Position – pozícia dolnej dotažnice.
  • Height – výška umiestnenia podčiarknutia.

Začiatočník môže východiskové hodnoty ponechať bez zmeny.

Nastavenie kódovania

Nastavíme cez ⇰EncodingForce Encoding.

Ak nie sme nútený používať nejaký konkrétny typ kódovania, potom je najvhodnejšie kódovanie Unicode. Pri ňom máme na výber:

  • ISO 110646–1 (Unicode, BMP) – Basic Multilingual Plane, pre rozsahy 0+0000 až 0+FFFF.
  • ISO 110646–1 (Unicode, Full) – pre celý interval Unicode.

Vytvorenie fontu

Finálny font určený k použitiu si vygenerujeme cez ⇰FileGenerate Fonts.

Fontforge

V okne vyplníme názov súboru, prípadne si (kliknutím na položku) pozrieme/upravíme „Options“ („Nastavenia“) a font vygenerujeme cez tlačídlo „Generate“. Nastavenia by mali byť nastavené napríklad takto:

Fontforge

Použitie

Asi najjednoduchší spôsob vyskúšania si vlastného fontu (ak ho nechceme zaindexovať v systéme) je cez HTML s použitím @font-face a zapísaním znakov ako hexa konštanty.

Vygenerovanie fontu v kocke

  • Pomenovanie fontu.
  • Písmová osnova.
  • Nastavenie kódovania.
  • Upraviť/pridať znaky.
  • Vygenerovanie fontu.

V tomto diele sme si predstavili základné veci potrebné k nastaveniu a generovaniu fontu so softvérom Fontforge. V ďalšom diele sa budeme venovať tvorbe glyfu.

Ďalšia literatúra

(Autorem obrázků je Dušan Kreheľ.)

Autor článku

Študoval SPŠE, bez titulu TUKE. Profesionálne skúsenosti: tvorba a správa webu.