Mark del rich text tra stili

Il rich text tipizzato conserva la V logica originale e la RV canonica mentre posiziona una combining mark iniziale rispetto al vero glyph renderizzato precedente sulla stessa riga fisica

Base e mark possono usare diversi programmi font forniti regular, bold, italic o bold-italic, dimensioni in punti diverse e colori diversi

Il posizionamento legge i veri attaccamenti GPOS mark-to-base, mark-to-ligature e mark-to-mark, incluse le lookup extension positioning; l'ancoraggio della base usa il suo font e la sua scala, e l'ancoraggio del mark usa il suo font e la sua scala

La giunzione contestuale araba resta attiva oltre i confini di stile, e un mark attaccato usa il glyph base unito risultante anziché un glyph nominale isolato

I mark iniziali ricevono trasformazioni figlio indipendenti, così attaccare un mark non sposta il testo ordinario successivo né cambia l'avanzamento logico della spaziatura caratteri

I form figlio rich conservano le sporgenze dei glyph, incluse combining mark con origine negativa e outline corsivi; l'appearance proprietaria fornisce clip, rotazione e allineamento paragrafo del widget

L'inchiostro attaccato contribuisce al fitting delle estensioni di riga, così i mark impilati possono restare visibili in cima a un campo; un cluster indivisibile più alto del widget conserva il consueto comportamento di clipping limitato

Quando manca una copertura di attaccamento corrispondente, i veri bounds glyph-header TrueType selezionati forniscono un fallback di posizionamento con scale di point size indipendenti e la combining class Unicode nativa

Il posizionamento di fallback distingue mark above, below, attached, left/right e doppi; i mark sullo stesso lato si impilano mentre i mark sul lato opposto tornano all'outline della base, e gli ancoraggi GPOS corrispondenti hanno sempre priorità

Le combining mark doppie restano candidate all'attaccamento anche quando la loro classe line-break Unicode è nonbreaking; testo logico, stili originali e successivo avanzamento di spaziatura caratteri restano intatti

Il bordo di fallback per un mark doppio segue il vero livello bidi risolto del suo text item, incluso un item di direzione opposta incorporato nel paragrafo

I bounds di fallback descrivono l'header outline dichiarato del vero font; la ricostruzione automatica di family arbitrarie resta fuori da questo contratto di font forniti

Le letture delle tabelle font restano limitate alla loro vera tabella GPOS, osservano la cancellazione e condividono un budget di traversata tra tutti i font di stile forniti; offset di tabella non validi falliscono prima che il campo documento venga mutato

Gli outline PDF unhinted usano ancoraggi in coordinate di design, senza aggiustamenti pixel specifici per device

Validazione

HotPDFHeadlessRichMarkTests.pas salva e ricarica vere appearance di mark latini, arabi ed ebraici, mark impilati, una legatura araba autentica, dimensioni e colori misti, wrapping, spaziatura, allineamento e rotazione

Verify-HeadlessRichMarks.py legge i veri programmi font incorporati tramite fontTools, calcola in modo indipendente gli ancoraggi GPOS, verifica valori e stili sorgente e conferma che ogni mark contribuisce con pixel MuPDF visibili renderizzando la stessa appearance reale con quel mark omesso

HotPDFHeadlessRichMarkFallbackTests.pas e Verify-HeadlessRichMarkFallback.py controllano veri font senza GPOS, appearance salvate visibili, combining class raw, bounds dei glyph selezionati e cancellazione; si verifica anche che gli ancoraggi corrispondenti conservino la priorità sul posizionamento di fallback

Bounds dei glyph TrueType selezionati · Combining class canoniche raw

Appearance builder · Campi rich-text nativi · Fitting dei grapheme tra stili