Hlavní navigace

Názor k článku Písma a jejich použití: formáty písem TrueType a OpenType od Filip Jirsák - Já to chápu. Spousta znaků se skládá z nějakého...

  • 14. 9. 2024 19:31

    Filip Jirsák
    Stříbrný podporovatel

    Já to chápu.

    Spousta znaků se skládá z nějakého základního znaku a jednoho či více modifikátorů. Unicode s tím počítá, takže třeba „r s háčkem“ jde vyjádřit přesně takhle, jako znak „r“ doplněný „háčkem“ (což je modifikátor, není to v pravém smyslu samostatný znak, nemá třeba žádnou šířku). Ten princip se používá v Unicode pro spoustu různých věcí – třeba máte základní smajlík, ten můžete modifikátorem doplnit o to, zda jde o muže či ženu, a jinými modifikátory můžete určit barvu pleti. Ale zpět k latince – ve starších znakových sadách se tohle řešilo tak, že to „r s háčkem“ mělo samostatný znak. No a Unicode to z historických důvodů převzalo, takže v Unicode můžeme „ř“ napsat jako jeden znak nebo jako dva znaky „r s háčkem“.

    Pak máme nějaké písmo, které jednotlivým znakům přiřazuje tvary – glyfy. Takže v tom písmu máme třeba glyf pro ř nebo-li r s háčkem – a pozor, je to pořád ten stejný glyf. V žádném případě se to nedělá tak, že by se zobrazil glyf pro „r“ a přes něj glyf pro „háček“ – takhle gylfy pro písmena s diakritikou nejde vytvořit, diakritiku musí usadit autor písma pro každý znak zvlášť. To písmo třeba ani nemusí mít glyf pro samotný háček – a pokud ho má, není to proto, aby se někam sám přilepoval, ale pro případy, kdy potřebujete ten háček zobrazit samostatně.

    Nebo-li ve fontu je zabudován způsob, jak kombinaci „r s háčkem“ zobrazit jako glyf pro „ř“. No a P_V by chtěl opačný proces – když se při vykreslování písma narazí na znak, který nemá ve fontu odpovídající glyf, měla by ho vykreslovací knihovna zkusit vykreslit z jednotlivých částí. K tomu by byla nutná ta tabulka pro zpětný převod, o které píšete. Třeba pro „ř“ by to bylo poměrně jednoduché, protože ten vztah, že „r s háčkem“ se normalizuje jako „ř“, je definován přímo v Unicode. Jenže třeba pro „í“ by to už použitelné nebylo, protože „í“ je sice „i s čárkou“, ale pro vykreslení by bylo potřeba použít glyfy „i bez tečky“ a „čárka“. Trochu jiný problém by byl z českých písmen s „ď“, jak jsem psal výše.

    No a jak píšete dál, tohle by řešilo problém jenom pro pár jazyků, které mají oproti západoevropské latince pár znaků s diakritikou navíc. Nebo-li bylo by to dost složité na implementaci, a přitom by to prakticky nikomu nepomohlo. A navíc – ty znaky s automaticky přilepeným diakritickým znaménkem by prostě vypadaly ošklivě, nebylo by to o moc lepší, než když se to nahradí znakem jiného podobného písma. Pokud jde o nějaká ozdobná písma, kde použití náhradního písma vidí každý, tam by to automatické doplnění vypadalo hrozně a stejně by to každý viděl. Takže nemá smysl to řešit. Prostě je to na tom, kdo dané písmo použije, aby si ověřil, že má všechny znaky, které potřebuje. Pokud někdo vyrobí plakát s nějakým ozdobným písmem a nechá to tak i s tím, že některé znaky jsou nahrazené úplně jiným písmem – pak by se dotyčný měl od jakékoli práce s grafikou držet hodně daleko a dobře mu tak, že to každý na první pohled uvidí, že je to špatně.