Kombinerande tecken över stilgränser i rich text

Typad rich text bevarar den ursprungliga logiska V och kanoniska RV samtidigt som ett inledande kombinerande tecken positioneras mot det faktiskt föregående renderade glyfet på samma fysiska rad

Basen och tecknet kan använda olika angivna reguljära, fet, kursiva eller fet-kursiva typsnittsprogram, olika punktstorlekar och olika färger

Positioneringen läser verkliga GPOS-bilagor av typerna mark-to-base, mark-to-ligature och mark-to-mark, inklusive lookups med extension-positionering; basankaret använder sitt eget typsnitt och sin egen skala, och tecknets ankare använder sitt eget typsnitt och sin egen skala

Kontextuell arabisk sammansättning förblir aktiv över stilgränser, och ett anslutet tecken använder det resulterande sammanfogade basglyfet i stället för ett isolerat nominellt glyf

Inledande tecken får oberoende barntransformer så att ett anslutet tecken inte flyttar efterföljande vanlig text eller ändrar den logiska teckenavstånds-advancen

Barnformulär för rich text bevarar glyföverhäng, inklusive kombinerande tecken med negativ origo och kursiva konturer; det ägande utseendet tillhandahåller widgetens klipp, rotation och styckejustering

Ansluten bläck bidrar till linjeextenter vid anpassning så att staplade tecken kan förbli synliga överst i ett fält; en odelbar kluster som är högre än widgeten behåller sitt befintliga avgränsade klippbeteende

När matchande täckning för bilagor saknas levererar faktiska valda TrueType-glyfhuvudgränser en placeringsfallback med oberoende punktstorsleksskalor och den nativa Unicode-kombineringsklassen

Fallback-placeringen skiljer tecken ovanför, under, anslutna, vänster/höger och dubbla; tecken på samma sida staplas medan tecken på motsatt sida återgår till baskonturen, och matchande GPOS-ankare har alltid prioritet

Dubbla kombinerande tecken förblir kandidater för bilagor även när deras Unicode-radbrutningsklass är icke-brytande; logisk text, ursprungliga stilar och följande teckenavstånds-advance förblir intakta

Fallback-kanten för ett dubbelt tecken följer den faktiskt lösta bidi-nivån för dess textobjekt, även för ett objekt i motsatt riktning inbäddat i stycket

Fallback-gränserna beskriver det faktiska typsnittets deklarerade konturhuvud; automatisk återuppbyggnad av godtyckliga typsnittsfamiljer ligger utanför detta kontrakt för angivna typsnitt

Läsningar av typsnittstabeller förblir avgränsade till sin faktiska GPOS-tabell, beaktar avbrott och delar en traverseringsbudget över alla angivna stiltypsnitt; ogiltiga tabellförskjutningar misslyckas innan dokumentfältet ändras

Ohintade PDF-konturer använder ankare i designkoordinater, utan pixelförskjutningar för specifika enheter

Acceptans

HotPDFHeadlessRichMarkTests.pas sparar och laddar om faktiska utseenden med latinska, arabiska och hebreiska tecken, staplade tecken, en äkta arabisk ligatur, blandade storlekar och färger, radbrytning, avstånd, justering och rotation

Verify-HeadlessRichMarks.py läser de äkta inbäddade typsnittsprogrammen via fontTools, beräknar GPOS-ankare oberoende, verifierar källvärden och stilar och bekräftar att varje tecken bidrar med synliga MuPDF-pixlar genom att rendera samma faktiska utseende med tecknet utelämnat

HotPDFHeadlessRichMarkFallbackTests.pas och Verify-HeadlessRichMarkFallback.py kontrollerar faktiska typsnitt utan GPOS, synliga sparade utseenden, råa kombineringsklasser, valda glyfgränser och avbrytning; matchande ankor verifieras också behålla prioritet framför fallback-placeringen

Valda TrueType-glyfgränser · Råa kanoniska kombineringsklasser

Utseendebyggare · Nativerich-text-fält · Grafeaanpassning över stilgränser