Rich Text Marks Across Styles
Typowany rich text zachowuje oryginalny logiczny V i kanoniczne RV, pozycjonując wiodący znak łączący względem rzeczywistego poprzedzającego wyrenderowanego glifu na tej samej fizycznej linii
Podstawa i znak mogą używać różnych dostarczonych programów fontów regular, bold, italic albo bold-italic, różnych rozmiarów punktów i różnych kolorów
Pozycjonowanie czyta rzeczywiste przyczepy GPOS mark-to-base, mark-to-ligature i mark-to-mark, łącznie z lookupami pozycjonowania rozszerzeń; kotwica podstawy używa własnego fontu i skali, a kotwica znaku własnego fontu i skali
Kontekstowe łączenie arabskie pozostaje aktywne przez granice stylów, a przyczepiony znak używa wynikowego połączonego glifu podstawy zamiast izolowanego nominalnego glifu
Wiodące znaki dostają niezależnych transformacji podrzędnych, więc przyczepienie znaku nie przesuwa następującego zwykłego tekstu i nie zmienia logicznego przyrostu odstępów znaków
Podrzędne Formy rich zachowują wychodzenie glifów poza obrys, łącznie ze znakami łączącymi o ujemnym początku i konturami italic; posiadający wygląd dostarcza clip widgeta, rotację i wyrównanie akapitu
Przyczepiony tusz wlicza się do dopasowania zakresów linii, więc ułożone w stos znaki mogą pozostać widoczne u góry pola; niedzielny klaster wyższy niż widget zachowuje istniejące ograniczone zachowanie przycinania
Przy braku pasującego pokrycia przyczepów rzeczywiste granice nagłówka glifu TrueType dostarczają fallback umiejscowienia z niezależnymi skalami rozmiaru punktu i natywną klasą łączenia Unicode
Fallback umiejscowienia rozróżnia znaki nad, pod, przyczepione, lewe/prawe i podwójne; znaki tej samej strony układają się w stos, a znaki przeciwnych stron wracają do konturu podstawy, a pasujące kotwice GPOS zawsze mają priorytet
Podwójne znaki łączące pozostają kandydatami przyczepów nawet, gdy ich klasa złamania linii Unicode jest niełamliwa; tekst logiczny, oryginalne style i następujący przyrost odstępów znaków pozostają nienaruszone
Granica fallbacku podwójnego znaku podąża za rzeczywistym rozpoznanym poziomem bidi swojego itemu tekstowego, łącznie z itemem o przeciwnym kierunku osadzonym w akapicie
Granice fallbacku opisują zadeklarowany nagłówek konturu rzeczywistego fontu; automatyczna rekonstrukcja dowolnych rodzin fontów pozostaje poza tym kontraktem dostarczonych fontów
Odczyty tabel fontów pozostają ograniczone do rzeczywistej tabeli GPOS, obserwują anulowanie i dzielą budżet traversalu między wszystkie dostarczone fonty stylów; niepoprawne offsety tabel zawodzą przed mutacją pola dokumentu
Kontury PDF bez hintingu używają kotwic współrzędnych projektowych, bez dostosowań pikselowych właściwych urządzeniu
Acceptance
HotPDFHeadlessRichMarkTests.pas zapisuje i przeładowuje rzeczywiste wyglądy znaków łacińskich, arabskich i hebrajskich, znaki ułożone w stos, prawdziwą ligaturę arabską, mieszane rozmiary i kolory, zawijanie, odstępy, wyrównanie i rotację
Verify-HeadlessRichMarks.py czyta prawdziwe osadzone programy fontów przez fontTools, niezależnie oblicza kotwice GPOS, weryfikuje wartości i style źródła i potwierdza, że każdy znak wnosi widoczne piksele MuPDF przez renderowanie tego samego rzeczywistego wyglądu z pominiętym tym znakiem
HotPDFHeadlessRichMarkFallbackTests.pas i Verify-HeadlessRichMarkFallback.py sprawdzają rzeczywiste fonty bez GPOS, widoczne zapisane wyglądy, surowe klasy łączenia, wybrane granice glifów i anulowanie; pasujące kotwice są też weryfikowane jako zachowujące priorytet nad fallbackiem
Wybrane granice glifów TrueType · Surowe kanoniczne klasy łączenia
Builder wyglądów · Natywne pola rich-text · Dopasowanie grafemów między stylami