Unicode-grapheme-gränser

HPDFUnicodeTextBoundary implementerar Unicode 17.0.0:s förvalda utökade grapheme-kluster med de incheckade egenskaperna Grapheme_Cluster_Break, Indic_Conjunct_Break och Extended_Pictographic

Den portabla Pascal-implementationen hanterar kombinerande tecken, Hangul, indiska länkarsekvenser, emoji-ZWJ-sekvenser och parade regionala indikatorer utan att kräva GUI eller en segmenterings-DLL

Offset räknar UTF-16-kodenheter från noll och inkluderar både textens början och slut; tom text returnerar den enskilda offseten noll

Indata måste innehålla parade UTF-16-surrogat, och anroparen tillhandahåller en positiv kodenhetsbudget upp till 1048576; standardvärdet är 65535

Avbrott kontrolleras före allokering och medan varje skalär förbrukas, även för tom indata

Radbyte i rich fields

Ett för brett ord i ett flerradigt radbytbart rich field delas vid kompletta utökade grapheme-kluster och mäts med valt typsnitt och avstånd

Varje fragment bevarar ursprungliga V- och RV-värden, faktiska Unicode-mappningar och styckejusteringen; ett odelbart kluster som är bredare än rektangeln förblir intakt och klipps

Fragmentbredder kontrolleras efter shaping, inklusive fogande former som blir bredare när de formas var för sig; delbara spill delas igen vid kompletta kluster

Målning av komplexa skript fortsätter att använda HarfBuzz och FriBidi; grapheme-segmentering tillhandahåller inte glyph-shaping eller dubbelriktad styckelayout

Förvalda Unicode-radbrytningsmöjligheter finns tillgängliga genom samma portabla unit; att bryta ord över stilgränser och bidi i blandade stycken förblir separata aktiva mål

Konformans

Kör Tests/Linux/Run-UnicodeGraphemeAcceptance.sh eller den portabla Windows-testköraren med HotPDFUnicodeGraphemeTests och Tests/Linux/resources

Testerna förbrukar samtliga 766 officiella Unicode 17 GraphemeBreakTest-fall och jämför varje publicerad gräns i UTF-16-enheter

Build-UnicodeTextBoundaryTables.py bygger om de kompilerade intervalltabellerna deterministiskt från den befintliga fastnålade UCD-datan

Unicode 17 text segmentation rules · Gränsfunktion · Rich field-beteende