Unicode grapheme boundaries
HPDFUnicodeTextBoundary implementuje výchozí rozšířené grafémové clustery Unicode 17.0.0 s přiloženými vlastnostmi Grapheme_Cluster_Break, Indic_Conjunct_Break a Extended_Pictographic
Přenosná Pascal implementace zvládá kombinující značky, Hangul, linker sekvence indických písem, emoji ZWJ sekvence i párované regionální indikátory, aniž by vyžadovala GUI či segmentační DLL
Offsety počítají UTF-16 code unit od nuly a zahrnují začátek i konec textu; prázdný text vrátí jediný offset nula
Vstup musí obsahovat párované UTF-16 surrogáty a volající dodá kladný rozpočet code unit až do 1048576; výchozí je 65535
Zrušení se kontroluje před alokací i při konzumaci každého skaláru, tedy i u prázdného vstupu
Zalomení rich polí
Příliš široké slovo ve víceřádkovém zalomeném rich poli se dělí po kompletních rozšířených grafémových clusterech a měří se vybraným písmem a spacingem
Každý fragment si uchovává původní V i RV hodnoty, skutečná Unicode mapování i zarovnání odstavce; nedělitelný cluster širší než obdélník zůstane celý a ořeže se
Šířky fragmentů se kontrolují po shapingu, tedy i spojovací tvary, které se při samostatném shapeování rozšiřují; dělitelná přetečení se znovu dělí po kompletních clusterech
Malování složitých skriptů dál používá HarfBuzz a FriBidi; grafémová segmentace nedodává glyfové shapeování ani bidirezionální layout odstavců
Výchozí Unicode line-break příležitosti jsou dostupné přes stejnou přenosnou jednotku; zalomení slov napříč hranicemi stylů i bidi odstavců se smíšenými styly zůstávají samostatnými aktivními cíli
Shoda se standardem
Spusťte Tests/Linux/Run-UnicodeGraphemeAcceptance.sh, případně Windows přenosný test runner s HotPDFUnicodeGraphemeTests a Tests/Linux/resources
Testy konzumují všech 766 oficiálních case GraphemeBreakTest Unicode 17 a porovnávají každou publikovanou hranici v UTF-16 jednotkách
Build-UnicodeTextBoundaryTables.py deterministicky znovu postaví kompilované rozsahové tabulky ze stávajících pinnutých UCD dat
Pravidla textové segmentace Unicode 17 · Boundary funkce · Chování rich polí