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