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