Marcas de Rich Text entre estilos

Rich text tipado mantém o V lógico original e o RV canónico enquanto posiciona uma marca de combinação líder contra o glyph renderizado real precedente na mesma linha física

A base e a marca podem usar programas diferentes fornecidos de tipos de letra regular, bold, italic ou bold-italic, tamanhos em pontos diferentes e cores diferentes

O posicionamento lê anexos reais de GPOS marca-para-base, marca-para-ligadura e marca-para-marca, incluindo consultas de posicionamento de extensões; a âncora da base usa o tipo de letra e a escala próprios dela, e a âncora da marca usa o tipo de letra e a escala próprios dela

A ligação contextual árabe permanece ativa através de fronteiras de estilos, e uma marca anexada usa o glyph base ligado resultante em vez de um glyph nominal isolado

Marcas líderes recebem transforms filhas independentes, pelo que anexar uma marca não move o texto ordinário seguinte nem altera o avanço lógico de espaçamento de carateres

Forms filhas rich mantêm transbordos de glyphs, incluindo marcas de combinação de origem negativa e contornos itálicos; a aparência proprietária fornece o clip do widget, a rotação e o alinhamento de parágrafos

A tinta anexada contribui para o ajuste das extensões de linhas, para que marcas empilhadas possam permanecer visíveis no topo de um campo; um cluster indivisível mais alto que o widget mantém o comportamento existente delimitado de clipping dele

Quando falta cobertura correspondente de anexos, os bounds reais de cabeçalhos de glyphs TrueType selecionados fornecem um fallback de posicionamento com escalas independentes de tamanhos em pontos e a classe nativa de combinação Unicode

O posicionamento de fallback distingue marcas acima, abaixo, anexadas, esquerda/direita e duplas; marcas do mesmo lado empilham enquanto marcas de lados opostos voltam ao contorno da base, e âncoras GPOS correspondentes têm sempre prioridade

Marcas de combinação duplas continuam a ser candidatas a anexos mesmo quando a classe de quebra de linhas Unicode delas é não quebrável; o texto lógico, os estilos originais e o avanço seguinte de espaçamento de carateres permanecem intactos

A borda de fallback de uma marca dupla segue o nível bidi realmente resolvido do item de texto dela, incluindo um item de direção oposta incorporado dentro do parágrafo

Os bounds de fallback descrevem o cabeçalho de contornos declarado do tipo de letra real; a reconstrução automática de famílias arbitrárias de tipos de letra continua fora deste contrato de tipos de letra fornecidos

As leituras de tabelas de tipos de letra permanecem delimitadas à tabela GPOS real delas, observam o cancelamento e partilham um orçamento de travessia através de todos os tipos de letra de estilos fornecidos; offsets inválidos de tabelas falham antes de o campo do documento ser mutado

Contornos PDF sem hinting usam âncoras de coordenadas de design, sem ajustes de píxeis específicos de dispositivos

Aceitação

HotPDFHeadlessRichMarkTests.pas grava e recarrega aparências reais de marcas Latinas, Árabes e Hebraicas, marcas empilhadas, uma ligadura árabe genuína, tamanhos e cores mistos, wrap, espaçamento, alinhamento e rotação

Verify-HeadlessRichMarks.py lê os programas genuínos incorporados de tipos de letra através de fontTools, calcula de forma independente as âncoras GPOS, verifica valores e estilos fonte e confirma que cada marca contribui com píxeis visíveis de MuPDF renderizando a mesma aparência real com essa marca omitida

HotPDFHeadlessRichMarkFallbackTests.pas e Verify-HeadlessRichMarkFallback.py verificam tipos de letra realmente sem GPOS, aparências guardadas visíveis, classes brutas de combinação, bounds selecionados de glyphs e cancelamento; âncoras correspondentes também são verificadas a manter prioridade sobre o posicionamento de fallback

Bounds selecionados de glyphs TrueType · Classes brutas canónicas de combinação

Construtor de aparências · Campos nativos de rich text · Ajuste de graphemes entre estilos