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