Fontforge: vytváranie vektorového glyfu

7. 5. 2025
Doba čtení: 12 minut

Sdílet

Pracovní stul s návrhem nového písma
Autor: Shutterstock
V prvom diele sme si predstavili program Fontforge a v ňom vytváranie fontu (bez tvorby glyfu). V tomto poslednom diele sa pozrieme na predtým neprebratú časť a tou je vytváranie vektorového glyfu.

Prostredie program (opäť)

Co se dozvíte v článku
  1. Prostredie program (opäť)
  2. Segment ohraničenia
  3. Vrstvy
  4. Náhľad znaku
  5. Umiestňovanie
  6. Základné geometrické útvary
  7. Krivky
  8. „Problém O“
  9. „Problém V“
  10. Transformácia
  11. Hint – Odporúčanie
  12. Záver

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

  • Prehľad znakov – zoznam/prehľad všetkých znakov.
  • Editovanie glyfov – práca s glyfom.

Prehľad znakov

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

Prostředí programu Fontforge

Nevytvorený znak má namiesto náhľadu sivo preškrtnuté uhlopriečky. Dvojklikom naň alebo stlačením ENTER (ak je označený) môžeme znak upravovať.

Menu znaku v prehľade znakov

Pravým kliknutím myši na znak nám vyskočí nasledujúce menu:

Prostředí programu Fontforge
  • New Outline Window (Nové rysovacie okno) – otvorí glyf na editovanie.
  • Cut – Vystrihnúť.
  • Copy – Skopírovať.
  • Copy Reference – Skopírovať referenciu.
  • Copy Width – Skopírovať.
  • Paste – Vložiť.
  • Clear – zmazať všetko.
  • Copy Fg To Bg – Skopírovať forend do backendu.
  • Unlink Reference – Zrušiť referenciu.
  • Glyph Info – Informácie o glyfe.
  • Transform – Transformovať.
  • Expand Stroke – Rozšíriť ťah.
  • To Int – Na celé číslo.
  • Correct Direction – Korektný smer.
  • AutoHint – Automatické odporúčanie.
  • Center in Width – Vycentrovať na šírku.
  • Set Width… – Nastaviť šírku…
  • Set Vertical Advance…

Súčasne môžeme mať rozpracovaných viacero glyfov, ktoré sa manažujú tak, že v jednom okne sú zvlášť na kartách jednotlivé glyfy.

Editovanie glyfu

Prostredie pre editovanie glyfu

Prostředí programu Fontforge

Panel nástrojov

Popis prvkov na panely nástrojov
Základne prvky
fontforge-12 Práca s bodmi (v) Priblíženie/oddialenie (a)
fontforge-13 Kreslenie voľnou rukou (f) Posúvanie pracovnej plochy (h)
fontforge-14 Výrez (k) Pravítko ( r )
fontforge-15 Kreslenie krivky po segmentoch Kreslenie čiar s/bez kriviek (p; prepínanie, mód)
fontforge-16 Pridá krivkový bod (s) Pridá krivkový bod horizontálny/vertikálny (2)
fontforge-17 Pridá priamkový bod (5) Pridá dotyčnicový bod (3)
fontforge-18 Zväčšenie/zmenšenie objektu (4) Otočenie objektu
fontforge-19 90° sklopenie Skosenie
fontforge-20 3D otočenie Transformácia perspektívy
Zložené objekty
fontforge-21 Kruh/elipsa Hviezda
fontforge-25 Obdĺžnik N-uholník
Kreslenie čiar bez kriviek (mód)
fontforge-28 Pridá jednoduchý bod predchádzajúci
(niekedy ako dotyčnica)
Kreslenie čiar s/bez kriviek
(p; prepínanie, mód)
fontforge-29 Pridá krivkový bod (s) Pridá krivkový G2 bod (2)
fontforge-30 Pridá rohový bod (5) Pridá jednoduchý bod nasledujúci (3)
(niekedy ako dotyčnica)

V zátvorke je uvedená klávesová skratka (je to jeden znak). Nástroje začínajúce so slovom „pridať“ vytvárajú nové objekty (ako postupne vyklikávané body ohraničenia objektu) alebo kliknutím na segment ohraničenia objektu pridáva nové body.

V režime kreslenia čiar bez kriviek nie sú dostupné niektoré akcie v menu ⇰Element.

Kliknutím pravého tlačidla myši na dané nástroje sa prepína medzi:

Kruh/elipsa fontforge-22 fontforge-26 Obdĺžnik
Hviezda fontforge-23 fontforge-27 N-uholník

Meniteľne vlastnoti niektorých nástrojov (pristupné cez dvojklik na nástroj):

fontforge-20 Zaoblenie rohov obdĺžnika. Spôsob tvorby objektu.
fontforge-21 Počet vrcholov hviezdy a n-uholnika. Typ vzhľadu.

Vlastnosti nástroja elipsy/n-uholníka

Prostředí programu Fontforge

Prvý riadok je prepínacie menu medzi „Rectangle“ („Obdĺžnik“) a „Ellipse“ („Elipsa“). Pod týmto riadkom sú jednotlivé nastavenia pre zvolený prvok.

„Round Rectangle Radius“, ináč „zaoblenie rohov“ (ako v CSS „border-radius“), je možné nastaviť iba pre obdĺžnik. Veľkosť zaoblenia musí byť väčšie ako je šírka a výška vytváraného obdĺžnika, ináč sa daný obdĺžnik nevytvorí.

V ďalšom riadku sa v prepínacom menu nastavuje spôsob určenia veľkosti novovytváreného objektu. Prvý spôsob „Bounding Box“ definuje veľkosť od ľavého horného „rohu“ novovytváreného objektu (praktické pri tvorbe obdĺžnika). Pri druhom spôsobe „Center Out“ sa veľkosť definuje od stredu novovytváraného objektu (akoby tvorba kruhu podľa polomeru).

Na ďalších dvoch obrázkov si všimnime pomocné čierne krížiky, ktoré určujú začiatok definovania veľkosti novovytváraného objektu. Poznámka, objekty ako kruh alebo elipsa sú v skutočnosti zložené z viacerých kriviek.

Prostředí programu Fontforge

Určenie veľkosti novovytvoreného objektu od jeho „rohu“. 

Prostředí programu Fontforge

 Určenie veľkosti novovytvoreného objektu od jeho „stredu“.

Panel vrstiev

Panel vrstiev je zložený z riadkov s nastaveniami pre jednotlivé vrstvy. Posledný riadok obsahuje iba dve tlačídla: tlačidlo mínus na odobratie aktuálnej vrstvy a tlačítko plus na pridanie novej vrstvy.

Prostředí programu Fontforge
Prostředí programu Fontforge

Riadok s nastaveniami pre vrstvu je zložený zo štyroch prvkov (postupne menujúc zľava).

  • Zobraziť vrstvu.
    • Ak je to zaškrtnuté, tak daná vrstva sa zobrazí pri úpravách glyfu.
  • Metóda vykresľovania kriviek:
    • C – kubická,
    • Q – kvadratická.
  • Typ vrstvy:
    • # – sprievodná,
    • F – forend,
    • B – backend.
  • Používateľské pomenovanie vrstvy.
    • Postup na zmenu názvu: Dvojklik na názov, úprava názvu a uloženie názvu klávesou ENTER.

Východiskové vrstvy sa nedajú zmazať alebo premenovať.

Pravým kliknutím na panel vrstiev sa zobrazí menu vrstvy.

Prostředí programu Fontforge
  • New Layer – Nová vrstva.
  • Del Layer – Zmazať vrstvu.
  • Shift Contents To First – Presunie obsah na začiatok.
  • Shift Contents Up – Presunie obsah vyššie.
  • Shift Contents Down – Presunie obsah nižšie.
  • Shift Contents To Last – Presunie obsah na koniec.
  • Typ vstvy:
    • Make Foreground – Urobí forendovú.
    • Make Backeground – Urobí backendovú.
  • Typ kriviek:
    • Make Quadratic – Urobí kvadratické.
    • Make Qubic – Urobí kubické.
  • Fill – Výplň.
  • Show Cubic Column – Zobrazí kubický stĺpec.
  • Show Fore/Back Column – Zobrazí forendový/backendový stĺpec.

Ak je aktivovaná položka „Fill“ („Výplň“), potom pri editovaní je vnútorná plocha objektov s uzavretých ohraničením vyplnená farebné.

Prostředí programu Fontforge

S neaktívnou (horný) a s aktívnou výplň (dolný podobrázok). 

Vlastná em šírka znaku

Jeden zo spôsobov ako ju zmeniť je prostredníctvom grafického posuvníka (pozri červený kurzor na súradniciach [998,878]).

Prostředí programu Fontforge

Ďalší spôsob je číselne zadať hodnotu. V prehľade znakov (pozri nasledujúci obrázok) klikneme pravým tlačidlom na glyf a vyberieme položku „Set Width…“ (v preklade „Nastav šírku…“); cez hlavné menu ⇰Metrics→→Set Width… alebo CTRL+SHIFT+l.

Prostředí programu Fontforge

Následne zadáme novú číselnú hodnotu (aktívna je možnosť „Set width to:“, v preklade „Nastav šírku na:“) a potvrdíme:

Prostředí programu Fontforge

Nastavenie šírky znaku. 

Segment ohraničenia

Každý segment je v skutočnosti zložený z 2 bodov a spojitej čiary medzi nimi. Správanie kriviek vychádzajúcich z bodu je definované prostredníctvom vektora – veľkosť a uhol vektora. Z jedného bodu môžu viesť nula, jeden, dva a viac čiar.

Prostředí programu Fontforge

Vrstvy

Pri vytváraní glyfu sa stretávame s troma typmi pracovných vrstiev:

  • Guide (sprevádzajúca vrstva)
    • Vrstva, ktorá sa zobrazuje ako pozadie pri všetkých glyfov.
    • Napr. vhodné na definovanie výšky určitých glyfov.
  • Back (backend znaku)
  • Fore (forend znaku)
    • Obsah tejto vrsty sa vo výsledku zobrazí používateľovi.

Na nasledujúcom obrázku môžeme vidieť príklad použitia všetkých vrstiev. Vďaka trojuholníku umiestnenom v backende (zelená farba) vieme to ako je forendová krivka vypuklá voči „uhlopriečke“ mysleného obdĺžnika. V sprievodnej vrstve (sivá farba) je dvoma horizontálnymi čiarami poznačená výška malých a veľkých písmen.

Prostředí programu Fontforge

Forend (čierná), backend (zelená) a sprievodná vrstva (sivá farba). 

Náhľad znaku

Ako bude vyzerať finálny glyf si môžeme pozrieť buď v prehľade všetkých znakov alebo detailnejšie v editore znakov počas stlačenia klávesy MEDZERNÍK, či prepínaním do režimu náhľadu prostredníctvom ⇰ViewShowPreview, resp. klávesovou skratkou CTRL+`. Ukážka je v sekcií „Glyf“.

Umiestňovanie

Pri premiestňovaní bodu alebo objektu prostredníctvom kláves (šípka hore, dole, vľavo a vpravo) sa so súčasným stlačením klávesy SHIFT zmení veľkosť kroku posúvania z veľkosti 1 bodu na 10 bodov.

Pre detailné nastavenie objektu (napr. x-ovú a y-ovú pozíciu) treba v menu bodu zvoliť akciu „Get info“. Ukážka je v sekcií „Bod“.

Body je možné automatický zarovnať a to horizontálne alebo vertikálne cez ⇰ElementAlignAlign Points, resp. klávesovou skratkou CTRL+SHIFT+@. Nová pozícia bodov je vypočítaná ako priemer z pôvodných pozícií. Smer zarovnania (horizontálny, vertikálny) sa určuje automaticky podľa umiestnenia bodov.

Prostředí programu Fontforge

Vertikálne zarovnanie dvoch rohov trojuholníka (zelené pred, čierne po). 

Základné geometrické útvary

Všeobecne sa s objektami pracuje prostredníctvom počítačovej myši (metóda „chyť a pusti“) v doprovode s klávesnicou.

Práca s nejakým objektom alebo prvkom sa ukončuje buď stlačením klávesy ESC alebo kliknutím na pracovnú plochu pomimo.

Nový objekt sa vytvára tak, že sa postupne vyklikávajú body (program ich automaticky spája) a a na dokončenie vytvorenia uzavretého ohraničenia sa klikne na počiatočne vytvorený bod.

Úsečka

So stlačenou klávesou SHIFT sa môžu vytvárať čiary, pri krivke body, s polohou „zarovnanou“ horizontálne, vertikálne alebo diagonálne.

Krivka

Prvý spôsob vytvárania krivky je taký, že neoznačenú úsečku uchopíme za približne jej stred a ten „posúvame“. Treba si dávať pozor, aby úsečka nebola vôbec označená, lebo miesto vytvárania krivky by dochádzalo k jej premiestňovaniu.

Prostředí programu Fontforge

Druhý spôsob je taký, že ak máme dve úsečky spojené v jednom vrchole, tak tento spoločný vrchol označíme a potom ho odstránime buď cez možnosť „Merge“ („Zlúčiť“) alebo s klávesou DELETE.

Prostředí programu Fontforge

Všimnime si, že v tomto prípade sa vo vnútri krivky vytvára pomocný „virtuálny“ bod, t. j. extrém. Tieto extrémy môžu byť v určitých prípadov až štyri. Zbavíme sa ich (zmeníme ich na krivkové body) s ⇰ElementAdd extrema alebo s CTRL+SHIFT+x.

Prostředí programu Fontforge

 Krivka so štyrmi extrémami

Bod

Pravým kliknutím tlačidla myši na bod sa zobrazí menu, v ktorom sú dostupné nasledujúce akcie:

Prostředí programu Fontforge

 Menu bodu.

  • Curve – krivkový bod,
  • HVCurve – horizontálny/vertikálny krivkový bod
  • Corner – rohový bod,
  • Tangent – dotyčnicový bod,
  • Merge – Zlúčenie (do krivky),
  • Merge to Line – Zlúčenie do úsečky,
  • Align Points – Zarovnanie bodu,
  • Get Info… – Získanie informácie,
  • Add anchor – Pridanie kotvy,
  • Name point – Pomenovanie bodu.

Pre detailné nastavenie objektu (napr. x-ovej a y-ovej súradnice) vyberieme z menu možnosť „Get info“ alebo CTRL+i.

Fontforge

Okno „Get info“:

  • Base (základňa) – súradnice bodu (šírkový ofset, výškový ofset).
  • Kontrolný vektor:
    • Offset (ofset) – x-ová a y-ová súradnica.
    • Dist (vzdialenosť) – veľkosť vektora (vzdialenosť od bodu) a veľkosť uhla (3. hodina sa 0°, 12. hodina sa rovná 90°).
  • Type – typ bodu (krivkový, krivkový horizontálny/vertikálny, rohový alebo dotyčnicový).
  • Prepínanie vektorov:
    • Prev, Next – predchádzajúci, nasledujúci bod.
    • Prev on Counter, Next on Counter – predchádzajúci, nasledujúci bod v obryse.

Príklad hodnôt pre krivkový bod:

Fontforge
Fontforge

Typy bodov

  • Jednoduchý bod.
    • Nemá kontrolný vektor.
    • Spája sa s inými bodmi cez úsečky.
  • Rohový bod.
  • Krivkový bod.
    • Nastaveniami sa podobá rohovému bodu, ale líši sa od neho v tom, že pri zmene bodu/segmentu sa môžu meniť v obryse aj viaceré susedné segmenty.
  • Dotyčnicový bod.
    • Uhol kontrolného vektora (ako dotyčnica) je automaticky nastavený podľa segmentu:
      • Predchádzajúceho.
      • Nasledujúceho.
  • G2 a G4 bod.
    • Iný spôsob vykresľovania kriviek (viac informácií; pre začiatočníka to nie je nevyhnutné).

Obdĺžnik

So stlačením klávesom SHIFT sa namiesto obdĺžnika vytvára štvorec.

Vytváranie objektov z obdĺžnika

Na vytvorenie nových objektov môže byť vhodné použiť obdĺžnik (kvôli jeho vlastnostiam – dva rôzne veľké vzájomne kolmé páry úsečiek zložené z dvoch rovnako veľkých rovnobežných úsečiek).

Úsečka

Vytvoríme z obdĺžnika zmazaním jeho dvoch vrcholov alebo troch strán.

Prostředí programu Fontforge

 Vytvorenie úsečky z obdĺžnika zmazaním dvoch vrcholov.

Kým pri vytváraní glyfu nie je zvyčajne potrebné vytvárať úsečky, užitočné to môže byť na pomocných vrstvách.

Trojuholník

Vytvoríme ho zo štvorca tak, že jeden vrchol zmažeme.

Prostředí programu Fontforge

Kruh

Vytvoríme ho s nástrojom na tvorbu kužeľosečky pri súčasne stlačenom klávese SHIFT.

Vytvorenie presného kruhu je trochu jemná práca. Takže, ak častejšie potrebujeme vytvárať kruh, potom môžeme použiť trik,, že si vopred vytvoríme kruh s rozmermi 100×100 bodov. Ten si následne budeme kopírovať a podľa potreby ho objektovo zväčšovať a zmenšovať.

Editačný charakter kruhu sa inak prezentuje v móde s krivkami (horný podobrázok) a inak v móde bez kriviek (stredný podobrázok). Ak v režime bez kriviek začneme posúvať nejaký bod kruhu, potom sa tento kruh zmení na n-uholník (dolný podobrázok).

Prostředí programu Fontforge

 Kruh v móde kreslenia s krivkami (prvý) a bez kriviek (druhý a tretí podobrázok) bez a s upravovaním.

Krivky

Na dosiahnutie „pekného“ oblúka je možné použiť funkciu vybalancovanie oblúka ⇰ElementBalance alebo s CTRL+SHIFT+p.

Fontforge

 Vybalancovanie oblúka.

Na harmonizáciu viacerých susedných oblúkov slúži ⇰ElementHarmonize alebo CTRL+SHIFT+z.

„Problém O“

Pre znak „O“ je charakteristické to, že vo vnútri má prázdny priestor. Pokiaľ v programe dáme do seba dva ovály, nevytvorí sa nám automaticky vo vnútri diera. Pre vytvorenie diery je potrebné ešte aplikovať „Correct Direction“ („Korektný smer“) s ⇰ElementCorrect Direction alebo CTRL+SHIFT+d.

Prostředí programu Fontforge

Pred aplikovaním Correct Direction. Po aplikovaní Correct Direction. 

Prostředí programu Fontforge

Po aplikovaní Correct Direction. 

Všimnime si, že aplikovaním Correct Direction sa v menšom ovále zmenila orientácia (postupnosť segmentov) na opačnú (viď. bod v 9. hodine).

Druhý možný spôsob ako vytvoriť dieru je označiť malý ovál a aplikovať naň ⇰ElementReverse Direction (Reverzný/opačný smer).

„Problém V

Glyf „V“ má tvár dvoch hrubých čiar, ktoré sa dole prekrývajú. Takže pri realizácií potrebujeme vedieť/získať bod konca „doliny“. Ten vieme získať dvoma spôsobmi.

Poznámka: Pri realizácii tohto problému sa môžeme bežne stretnúť s javom, že matematický priesečník dvoch hrubých „čiar“ bude na súradniciach, ktoré nie sú celé čísla, ale sú reálne. V takom prípade by mohlo byť ešte vhodné zarovnať bod alebo celý glyf na celé číslo.

Zostrojenie zlúčením dvoch objektov

Nakreslíme si jednú a druhú „hrubú čiaru“, dolné časti „čiar“ (ako základne) dáme prekrývať, označíme obidva štvoruholníky a zlúčime ich cez ⇰ElementOverlapRemove Overlap alebo CTRL+SHIFT+o.

Prostředí programu Fontforge

 Zostrojenie glyfu „V“ zlúčením.

Zostrojenie podľa predlohy

V tomto riešení sa glyf „V“ zostrojí na backendovej vrstve a vo frontende sa len „obkreslí“.

Pri tomto riešení bude jednoznačne zrejmé, ako sme „zaokrúhlili“.

Prostředí programu Fontforge

 Varianty zaokrúhľovania priesečníka [309;264,29] (zelený priesečník) pri 1100 %.

Transformácia

Objekt alebo objekty môžeme transformovať (upraviť) cez ⇰ElementTransformationsTran­sform… alebo CTRL+\. Jedná transformácia sa môže skladať až z troch podoperácií. Prakticky to môže byť použiteľné napríklad pri vytváraní malých písmen z veľkých.

Prostředí programu Fontforge

 Príklad vytvorenia malého т z veľkého Т v cyrilike.

„Round To Int“ znamená „Zaokrúhliť na celé číslo“.

Transformačné operácie
Názov Preklad Poznámka
Do Nothing Nič nerob
Move Posun Relatívne voči aktuálnej polohe.
Rotate Rotácia V stupňoch a v smere alebo protismere hodinových ručičiek.
Scale Uniformly Zväčšenie celku V percentách.
Scale Zväčšenie V percentách podľa os X a Y.
Flip Prevrátenie Môže byť horizontálne alebo vertikálne.
Skew Skosenie/zošikmenie V stupňoch a v smere alebo protismere hodinových ručičiek.
Rorate 3D Around Rotácia v 3D okolo V stupňoch podľa os X a Y.
Move by Ruler… Posun podľa pravidla V stupňoch a v smere alebo protismere hodinových ručičiek.
Rotate by Ruler… Rotácia podľa pravidla
Skew by Ruler… Skosenie/zošikmenie podľa pravidla…

Transformačné operácie sa vykonávajú na originále (voľba „Origin“), ktorým je:

  • Glyph Origin – originálny glyf.
  • Center of Selection – centrovaný výber.
  • Lass Press – posledné stlačenie (počítačovej myši).

Tlačidlo „Apply“ poskytuje „reálny náhľad“ (víď prostredný podobrázok).

Hint – Odporúčanie

Odporúčanie zobrazíme cez položku menu ⇰Hints. Najvýznamnejšie akcie v danom podmenu sú:

  • AutoHint (CTRL+SHIFT+h) – Automatické odporúčanie.
  • Don't AutoHint – Nerob automatické odporúčanie.
  • Clear HSteam – Zmaž horizontálne smerovanie.
  • Clear VSteam – Zmaž vertikálne smerovanie.
  • Clear HSteam – Zmaž diagonálne smerovanie.
Prostředí programu Fontforge

Glyf so zapnutím odporúčaním. 

Menu glyfu

K nastaveniam glyfu sa dostaneme napr. cez ⇰ElementGlyph Info alebo prostredníctvom CTRL+i.

Prostředí programu Fontforge

Tri najdôležitejšie položky na karte Unicode sú:

  • Glyph Name (Názov glyfu).
  • Unicode Value (Unicode hodnota)
  • Unicode Char (Unicode znak) – zobrazí glyf zo systémových fontov.

Pokiaľ si vytvárame vlastné znaky (v rozsahu Private Use Areas), tak východiskové hodnoty môžeme ponechať bez zmeny.

Pri tvorbe fontu môže nastať prípad, že bude potrebné pridať aj znak medzery. Ak by sme ju nepridali, tak by sa pri písaní textu mohla použiť medzera z iného fontu a tá by v kombinácií s našimi glyfmi nemusela vhodne ladiť (napr. rozdielne em šírky znaku pre medzeru). Vtedy je vhodné pridať do fontu aj znak medzery – na pozícii 20H sa vytvorí prázdna pracovná plocha (t. j. v náhľade znakov je bez „sivého“ uhlopriečkového preškrtnutia) a v informáciach o znaku sa nastavia hodnoty Glyph Name (Názov glyfu) na SPACE a Unicode Value (Unicode hodnota) na E+0020. Vhodné je tiež pouvažovať aj o iných medzerách, napr. o nezalomiteľnej medzere.

Záver

V tomto druhom diely sme si dokončili preberanie základnej práce so softvérom Fontforge. Pre pokročilejšie veci alebo profesionálnejšiu realizáciu fontov je vhodné si prečítať aj oficiálnu dokumentáciu k programu FontForge.

(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.