Rich Text Marks Across Styles
Typovaný rich text si ponechává původní logické V i kanonické RV, zatímco pozicuje úvodní kombinující značku vůči skutečnému předchozímu vykreslenému glyfu na stejném fyzickém řádku
Základní znak i značka můžou používat různé dodané font programy regular, bold, italic či bold-italic, různé velikosti v bodech i různé barvy
Pozicování čte skutečné přílohy GPOS mark-to-base, mark-to-ligature i mark-to-mark, tedy i lookupy extension positioning; základní kotva použije své vlastní písmo i scale a kotva značky své vlastní
Kontextové arabské spojování zůstává aktivní napříč hranicemi stylů a připojená značka použije výsledný spojený základní glyf, nikoli izolovaný nominální glyf
Úvodní značky dostanou samostatné podřízené transformace, takže připojení značky neposune následující běžný text ani nezmění logický advance character spacing
Rich podřízené Form si uchovávají glyfové přesahy, tedy i kombinující značky se záporným počátkem i kurzívové obrysy; vlastnící appearance dodá clip widgetu, rotaci i zarovnání odstavce
Připojený ink se přičítá k fitování rozsahů řádků, takže naskládané značky mohou zůstat viditelné nahoře pole; nedělitelný cluster vyšší než widget si uchovává stávající ohraničené chování ořezu
Když odpovídající pokrytí přílohami chybí, skutečné vybrané meze glyfových hlaviček TrueType dodají umístění fallback, s nezávislými scale velikostí v bodech i nativní Unicode combining třídou
Fallback umístění rozlišuje značky above, below, attached, left/right i double; značky na stejné straně se skládají, značky na opačné straně se vrátí k obrysu základního znaku a odpovídající kotvy GPOS mají vždy přednost
Dvojité kombinující značky zůstávají kandidáty příloh, i když jejich Unicode line-break třída je nezlomitelná; logický text, původní styly i následný advance character spacing zůstávají nedotčené
Fallback strana dvojité značky se řídí skutečnou rozřešenou bidi úrovní její textové položky, tedy i položky opačného směru vložené do odstavce
Fallback meze popisují deklarovanou hlavičku obrysů skutečného písma; automatická rekonstrukce libovolných font rodin zůstává mimo tento kontrakt dodaných písem
Čtení font tabulek zůstává ohraničené na skutečnou tabulku GPOS, sleduje zrušení a sdílí traversal rozpočet napříč všemi dodanými style písmy; neplatné offsety tabulek selžou dřív, než se pole dokumentu změní
PDF obrysy bez hintingu používají kotvy v designových souřadnicích, bez pixelových úprav závislých na zařízení
Akceptace
HotPDFHeadlessRichMarkTests.pas uloží a znovu načte skutečné appearance značek latinky, arabštiny i hebrejštiny, naskládané značky, skutečnou arabskou ligaturu, smíšené velikosti a barvy, zalamování, spacing, zarovnání i rotaci
Verify-HeadlessRichMarks.py přečte skutečné vložené font programy přes fontTools, nezávisle spočítá kotvy GPOS, verifikuje zdrojové hodnoty a styly a potvrdí, že každá značka přispívá viditelnými pixely MuPDF, renderováním téže appearance s vynechanou značkou
HotPDFHeadlessRichMarkFallbackTests.pas a Verify-HeadlessRichMarkFallback.py kontrolují skutečná písma bez GPOS, viditelná uložená appearance, surové combining třídy, vybrané glyfové meze i zrušení; verifikuje se i to, že odpovídající kotvy si uchovávají přednost před fallback umístěním
Vybrané TrueType glyfové meze · Surové kanonické combining třídy
Builder appearance · Nativní rich-text pole · Grafémové fitování napříč styly