Run spacing nativo de rich text

Aparências rich aplicam letter e word spacing autorados durante shaping, ajuste de linhas, reshaping de linhas físicas, alinhamento e pintura, usando as fontes fornecidas e o layout rich-text delimitado existente

<p style="letter-spacing:.12em;word-spacing:-1.25pt">A spaced paragraph</p>

O perfil delimitado inline CSS aceita normal, inherit, initial, unset, comprimentos pt com sinal, px a 96 dpi, pc, in, cm, mm e em, mais zero sem unidade; em é computado do tamanho final da fonte em cascata do elemento declarante, e filhos herdam esse comprimento em pontos computado

Letter e word spacing têm ordem de declaração e prioridade important independentes, e o shorthand de fontes preserva ambos os componentes; declarações não suportadas ou inválidas seguem o comportamento existente de ignorar do decoder

Normal explícito zera o spacing global correspondente de aparências; modos nativos omitidos retêm o comportamento existente global de CharacterSpacing e WordSpacing, incluindo o advance do caractere final dele

Quando o letter spacing explícito ativa um parágrafo, unidades tipográficas visíveis recebem metade dos valores vizinhos de estilo em cada fronteira interna após a reordenação visual, e as bordas de linhas físicas omitem as metades externas; marks e controles de formato invisíveis não consomem spacing separado

SPACE e NBSP recebem metade do word spacing deles em cada lado do cluster com shaping, incluindo um separador seguido de um combining mark; outros separadores de palavras Unicode ficam fora deste perfil delimitado

Tracking explícito não nulo desabilita as substituições opcionais liga, clig, dlig e hlig, retendo ligaduras e kerning obrigatórios; unidades cursivas adjacentes de árabe, Rohingya, Mandaic, Mongol, N'Ko, Phags-pa e Siríaco suprimem tracking onde esta implementação não consegue alongar a conexão com segurança

Spacing negativo participa dos bounds reais de tinta de glyphs e do ajuste de prefixos, sem assumir que cada prefixo mais longo é mais largo; auto-fit escala o spacing absoluto em pontos junto com o tamanho da fonte, enquanto fatores em em autorados permanecem relativos

O alinhamento de linhas com quebra suave usa o advance do conteúdo visível separadamente do advance codificado; fragmentos de espaços à direita que cabem permanecem presentes com seus offsets de origem e mapeamentos ToUnicode em vez de serem apagados para centralizar ou alinhar uma linha à direita

Separadores soft ASCII podem atravessar fronteiras de estilos ou runs vazios, enquanto NBSP continua um cluster sem quebra e quebras explícitas de parágrafos retêm seu tratamento CRLF separado; veja aparências default de FreeText para o layout de anotações transformado

Runs tipados preservam seus valores Double originais, V retém o texto simples autorado e RV grava o spacing computado em pontos com precisão de round trip; atualizações read-only nativas comparam a semântica resultante do valor rich e da aparência

A conversão decimal do spacing usa round-to-nearest, ties-to-even para valores Double finitos; valores canônicos de RV normalizam zero negativo para zero e permanecem inalterados por um segundo decode e serialização

Dentro deste perfil delimitado, normal explícito e zero explícito computam o mesmo spacing em pontos e o mesmo RV canônico, tornando atualizações read-only realmente equivalentes em semantic no-ops; operações JSON versionadas retêm os bytes originais da origem, e o modo legacy omitido permanece distinto porque herda as opções globais de aparência

Desde a versão 2.943.1, o SaveRichTextFieldUpdatesToFile nativo também publica os bytes originais exatos quando todas as atualizações estão inalteradas e o grafo carregado não tem edições pendentes, incluindo a criptografia AES existente e revisões assinadas; edições pendentes do grafo são preservadas no candidato publicado mesmo quando a contagem de atualizações de campos é zero

Rebuild de consumers Pascal e C++Builder exige records correspondentes de rich-runs e shaped-glyphs e headers gerados; as estruturas versionadas de callbacks C e os símbolos exportados permanecem inalterados

Este perfil segue o modelo de spacing da CSS 2.2 e as regras de line-edge, unidades tipográficas e shaping do CSS Text letter spacing e CSS Text word spacing, com a cobertura delimitada de separadores e cursivas declarada acima

Modos de spacing · JSON tipado · Span de shaping estilizado

Math numérico finito suporta expressões de comprimento calc, min, max e clamp, q, rem e unidades de viewport configuradas explicitamente; comprimentos computados com sinal alimentam o mesmo shaping, ajuste de linhas, pintura e comportamento canônico de valores rich