od Emil Pastelka 30. 5. 2021 20:08
Pokud používáte písma z neznámého zdroje, nejisté verze/stáří, blíže neurčeného typu (OpenType, TrueType, Postscript, ...) a kdovíjaké lokalizace, může se projevit jejich nekompatibilita. Windows 10 po dlouhé době zavedl jinou alokaci znaků v souboru písma a jeho volání. S tím se pojí nekompatibilita na úrovni systému, ale i na úrovni programu, který písmo volá.
Práce s písmem se děje následovně:
- písmo je vloženo do OS
- OS zná jeho lokalitu, jméno a jazykovou sadu
- kdokoliv o písmo požádá (SW), může použít buď žádost na přímo, nebo zprostředkovaně přes OS
Přímá žádost o písmo je, když program umí s písmem pracovat lépe, než samotný OS. Požádá jen o systémový zdroj a práci s fontem pak má plně ve vlastní režii.
Zprostředkovaná žádost je, když SW posílá systému pouze požadavky na konkrétní znaky. Požadavek pak dle stáří SW vypadá buď jako "vrať mi znak na 28. pozici v daném písmu" a nebo moderně "vrať mi znak 'a' v kurzívě".
Stará písma mají znaky na pevných pozicích. Nová písma je mají definovány jménem. Pokud tedy v moderním OS moderně zavolám "á", nové písmo mi vrátí správný znak, ale staré písmo neví, na co se ptám, proto vrátí nic, nebo nějaký znak zástupného symbolu.
Naopak, pokud budu volat moderní písmo starým způsobem, tedy kódem znaku, nebo jeho pozicí v tabulce, tak buď nedostanu nic, nebo naprosto jiný znak.
Do toho vstupuje ještě lokalizace písem, která přidává znaky, se kterými původní písmo nepočítalo. Někdy pro ně autor písma v tabulce znaků vynechá standardní místo, jindy se řadí až za písmo samotné. Záleží na tom, kdo lokalizaci provádí.
Obecně lze říct, že byste měl používat jen aktuální písma. V rámci licence k písmu máte i podporu od autora. Písmo má verze i aktualizace jako jakýkoliv jiný SW.