Granice grafemów Unicode
HPDFUnicodeTextBoundary implementuje domyślne rozszerzone klastry grafemów Unicode 17.0.0 używając zamieszczonych w repozytorium właściwości Grapheme_Cluster_Break, Indic_Conjunct_Break i Extended_Pictographic
Przenośna implementacja Pascal obsługuje znaczniki łączenia, Hangul, sekwencje łączników Indic, sekwencje emoji ZWJ i sparowane wskaźniki regionalne bez wymagania GUI ani DLL segmentacji
Offsety liczą jednostki kodu UTF-16 od zera i obejmują zarówno początek, jak i koniec tekstu; pusty tekst zwraca pojedynczy offset zero
Wejście musi zawierać sparowane surrogaty UTF-16, a wywołujący dostarcza dodatni budżet jednostek kodu do 1048576; domyślnie 65535
Anulowanie jest sprawdzane przed alokacją i podczas konsumpcji każdego skalara, łącznie dla pustego wejścia
Zawijanie pól rich
Zbyt szerokie słowo w wielowierszowym zawijanym polu rich jest dzielone na kompletnych klastrach rozszerzonych grafemów i mierzone wybranym fontem i odstępami
Każdy fragment zachowuje oryginalne wartości V i RV, rzeczywiste mapowania Unicode i wyrównanie akapitu; niepodzielny klaster szerszy niż prostokąt pozostaje nietknięty i jest przycinany
Szerokości fragmentów są sprawdzane po shapowaniu, włącznie z formami łączenia, które poszerzają się przy osobnym shapowaniu; podzielne przepełnienia są dzielone ponownie na kompletnych klastrach
Malowanie skryptów złożonych nadal używa HarfBuzz i FriBidi; segmentacja grafemów nie dostarcza shapowania glifów ani dwukierunkowego layoutu akapitu
Domyślne możliwości łamania wierszy Unicode są dostępne w tej samej przenośnej jednostce; zawijanie słów przez granice stylów i dwukierunkowość akapitów mieszanych stylów pozostają osobnymi aktywnymi celami
Zgodność
Uruchom Tests/Linux/Run-UnicodeGraphemeAcceptance.sh albo runner testów przenośnych Windows z HotPDFUnicodeGraphemeTests i Tests/Linux/resources
Testy konsumują wszystkie 766 oficjalnych przypadków Unicode 17 GraphemeBreakTest i porównują każdą opublikowaną granicę w jednostkach UTF-16
Build-UnicodeTextBoundaryTables.py deterministycznie przebudowuje skompilowane tablice zakresów z istniejących przypiętych danych UCD
Reguły segmentacji tekstu Unicode 17 · Funkcja granic · Zachowanie pól rich