Letter y word spacing de runs de rich text nativos

Las apariencias rich aplican el letter spacing y word spacing escritos durante el shaping, el ajuste de líneas, el reformateo de líneas físicas, la alineación y el pintado, usando las fuentes suministradas y el layout acotado existente de rich text

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

El perfil acotado de CSS inline acepta normal, inherit, initial, unset, longitudes con signo en pt, px a 96 dpi, pc, in, cm, mm y em, más el cero sin unidad; em computa a partir del tamaño de fuente final en cascada de su elemento declarante y los hijos heredan esa longitud computada en puntos

El letter spacing y el word spacing tienen orden de declaración y prioridad important independientes, y el font shorthand preserva ambos componentes; las declaraciones no soportadas o inválidas siguen el comportamiento existente de ignorado del decoder

El normal explícito restablece a cero el spacing global correspondiente de la apariencia; los modos nativos omitidos retienen el comportamiento existente de CharacterSpacing y WordSpacing globales, incluyendo su advance del carácter final

Cuando un letter spacing explícito activa un párrafo, las unidades tipográficas visibles reciben la mitad de los valores de estilo vecinos en cada límite interior tras el reordenamiento visual, y los bordes de líneas físicas omiten las mitades externas; los marks y los controles de formato invisibles no consumen spacing separado

SPACE y NBSP reciben la mitad de su word spacing a cada lado de su cluster con shaping, incluyendo un separador seguido de un combining mark; los otros separadores de palabras Unicode quedan fuera de este perfil acotado

Los separadores suaves ASCII pueden abarcar límites de estilo o runs vacíos, mientras que NBSP sigue siendo un cluster sin ruptura y los saltos de párrafo explícitos retienen su manejo CRLF separado; consulte el tema de apariencias predeterminadas FreeText

El tracking explícito distinto de cero deshabilita las sustituciones opcionales liga, clig, dlig y hlig mientras retiene las ligaduras requeridas y el kerning; las unidades cursivas adyacentes de árabe, Rohingya, Mandaic, mongol, N'Ko, Phags-pa y siríaco suprimen el tracking donde esta implementación no puede alargar de forma segura la conexión

El spacing negativo participa en los bounds reales de tinta de glifos y en el ajuste de prefijos sin asumir que cada prefijo más largo es más ancho; el auto-fit escala el spacing absoluto en puntos junto con el tamaño de fuente mientras los factores em escritos permanecen relativos

Los runs tipados preservan sus valores Double originales, V retiene el texto simple escrito y RV escribe el spacing computado en puntos con precisión de round trip; las actualizaciones nativas de solo lectura comparan el valor rich resultante y la semántica de apariencia

La conversión decimal del spacing usa round-to-nearest, ties-to-even para valores Double finitos; los valores RV canónicos normalizan el cero negativo a cero y no cambian tras una segunda decodificación y serialización

Dentro de este perfil acotado, el normal explícito y el cero explícito computan al mismo spacing en puntos y al mismo RV canónico, haciendo que las actualizaciones equivalentes reales de solo lectura sean no-ops semánticos; las operaciones JSON versionadas retienen los bytes fuente originales, y el modo legacy omitido permanece diferenciado porque hereda las opciones globales de apariencia

La transacción existente nativa SaveRichTextFieldUpdatesToFile puede añadir una revisión incluso cuando su conteo de updates semánticos es cero; las operaciones JSON versionadas retienen su contrato separado de no-op exacto byte a byte

Desde la versión 2.943.1, el SaveRichTextFieldUpdatesToFile nativo también publica los bytes originales exactos cuando todos los updates están sin cambios y el grafo cargado no tiene ediciones pendientes, incluidos estados de sesión existentes cifrados con AES

Recompile los consumidores Pascal y C++Builder con los records de rich-run y glifos con shaping y los headers generados coincidentes; las estructuras versionadas de callbacks C y los símbolos exportados no cambian

Este perfil sigue el modelo de spacing de CSS 2.2 y las reglas de line-edge, unidades tipográficas y shaping de CSS Text letter spacing y CSS Text word spacing, con la cobertura acotada de separadores y cursivas indicada arriba

Modos de spacing · JSON tipado · Span con shaping con estilo

La matemática numérica finita soporta expresiones de longitud calc, min, max y clamp, q, rem y unidades de viewport configuradas explícitamente; las longitudes computadas con signo alimentan el mismo shaping, ajuste de líneas, pintado y comportamiento de valores rich canónicos