Łamanie wierszy Unicode

HPDFUnicodeLineBreaks implementuje domyślne możliwości łamania wierszy Unicode 17.0.0 z zamieszczonymi w repozytorium właściwościami Line_Break, General_Category, East_Asian_Width i Extended_Pictographic

Przenośna implementacja rozwiązuje sekwencje łączenia, kontekst interpunkcji, wyrażenia numeryczne, Hangul, sylaby ortograficzne Brahmic, modyfikatory emoji i sparowane wskaźniki regionalne bez DLL segmentacji

Funkcja zwraca pozycję przed pierwszym skalarem i po każdym skalarze, wyrażoną jako offsety UTF-16 od zera; każda pozycja jest zabroniona, dozwolona albo obowiązkowa

Koniec tekstu jest obowiązkowy, włącznie dla pustego wejścia; początek niepustego tekstu jest zabroniony, a sparowane surrogaty nie mają pozycji wewnętrznej

Domyślna obsługa Azji Południowo-Wschodniej rozwiązuje zwykłe znaki SA do AL, a znaczniki łączenia SA do CM; słowniki językowe i dzielenie są osobnymi usługami tailoringu

HPDFUnicodeLineBreakClass wystawia surową albo rozwiązaną wg LB1 właściwość dla pojedynczych punktów kodu; nazwy THPDFUnicodeLineBreakClass zachowują każdą skrótową właściwość Unicode 17

Istniejące HPDFComputeLineBreaks i HPDFLineBreakClassOf API dokumentu konsumują te same kompletne tablice na Delphi 2009 i nowszych oraz wspieranych celach FPC, zachowując ustalone ordynały enum i zachowanie pustego wejścia

Zniekształcony UTF-16 i budżety jednostek kodu poza 1 do 1048576 podnoszą EArgumentException; anulowanie jest sprawdzane przed alokacją, podczas dekodowania i przy wyliczaniu granic

Rzeczywisty layout pól rich

Zawijane typowane runy rich konsumują legalne domyślne możliwości, utrzymują grupy nierozdzielających spacji i otwierającej interpunkcji razem i honorują CRLF, NEL, LINE SEPARATOR i PARAGRAPH SEPARATOR jako jawne łamania

Oryginalne separatory pozostają w V i kanonicznym RV; separatory linii są pomijane w malowanych fragmentach glifów, a zbyt szerokie grupy używają istniejącego awaryjnego zawijania kompletnych grafemów

Niezależne fragmenty na tej samej rzeczywistej linii kontynuują od zmierzonych posunięć; legalne łamania nie wymagają osobnej fizycznej linii, chyba że dopasowanie je wybierze

Kompletne możliwości akapitu zachowują legalne grupy przez zmiany stylów i sklejają rozdzielone CRLF; rzeczywiste stylowane posunięcia decydują, kiedy cała pasująca grupa przechodzi do świeżej linii

Awaryjne dopasowanie grafemów między stylami i kontekstowe shapowanie, dwukierunkowość akapitów mieszanych stylów, dowolny XHTML i tailoring specyficzny dla języków pozostają aktywnymi celami integracji

Zgodność

HotPDFUnicodeLineBreakTests konsumuje wszystkie 19338 oficjalnych przypadków Unicode 17 LineBreakTest i porównuje każdą opublikowaną pozycję; obowiązkowy koniec oraz zachowanie zniekształceń, budżetu i anulowania mają osobne kontrole

Build-UnicodeLineBreakTables.py --check weryfikuje odtwarzalność i przypięte SHA-256 trzech dodatkowych wejść właściwości UCD

Reguły łamania wierszy Unicode 17 · Funkcja granic · Zwracane pozycje · Integracja pól rich