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