Unicode-Graphemgrenzen
HPDFUnicodeTextBoundary implementiert Unicode-17.0.0-Default-extended-grapheme-clusters mit den eingecheckten Grapheme_Cluster_Break-, Indic_Conjunct_Break- und Extended_Pictographic-Properties
Die portable Pascal-Implementierung behandelt kombinierende Marken, Hangul, Indic-Linker-Sequenzen, Emoji-ZWJ-Sequenzen und gepaarte Regionalindikatoren, ohne eine GUI oder eine Segmentation-DLL zu benötigen
Offsets zählen UTF-16-Code-Einheiten ab null und schließen Anfang und Ende des Texts ein; leerer Text liefert den einzelnen Offset null
Der Input muss gepaarte UTF-16-Surrogate enthalten, und der Aufrufer liefert ein positives Code-Unit-Budget bis 1048576; der Default ist 65535
Abbruch wird vor der Allokation und beim Konsumieren jedes Scalars geprüft, auch bei leerem Input
Rich-Field-Wrapping
Ein überbreites Wort in einem mehrzeilig gebrochenen Rich-Feld wird an vollständigen extended-grapheme-clusters geteilt und mit der ausgewählten Schrift und den Abständen gemessen
Jedes Fragment bewahrt ursprüngliche V- und RV-Werte, echte Unicode-Mappings und die Absatzausrichtung; ein unteilbarer Cluster, der breiter als das Rechteck ist, bleibt intakt und wird geclippt
Fragmentbreiten werden nach dem Shaping geprüft, einschließlich Verbindungsformen, die sich beim separaten Shaping verbreitern; teilbare Überläufe werden erneut an vollständigen Clustern geteilt
Complex-Script-Painting nutzt weiterhin HarfBuzz und FriBidi; Graphemsegmentation liefert keine Glyphen-Shape- oder Absatz-bidi-Layouts
Default Unicode line-break opportunities sind über dieselbe portable Unit verfügbar; Wrapping von Wörtern über Stilgrenzen hinweg und gemischter Absatz-bidi bleiben separate aktive Ziele
Konformität
Starten Sie Tests/Linux/Run-UnicodeGraphemeAcceptance.sh oder den Windows-portablen Test-Runner mit HotPDFUnicodeGraphemeTests und Tests/Linux/resources
Die Tests konsumieren alle 766 offiziellen Unicode-17-GraphemeBreakTest-Fälle und vergleichen jede veröffentlichte Grenze in UTF-16-Einheiten
Build-UnicodeTextBoundaryTables.py baut die kompilierten Range-Tabellen deterministisch aus den bestehenden gepinnten UCD-Daten neu
Unicode-17-Text-Segmentierungsregeln · Boundary function · Rich field behavior