Espacement des runs de texte enrichi natif
Les apparences riches appliquent l'espacement de lettres et de mots rédigé pendant le shaping, l'ajustement des lignes, le remodelage des lignes physiques, l'alignement et la peinture, en utilisant les polices fournies et le layout de texte enrichi borné existant
<p style="letter-spacing:.12em;word-spacing:-1.25pt">A spaced paragraph</p>
Le profil CSS en ligne borné accepte normal, inherit, initial, unset, des longueurs pt signées, px à 96 dpi, pc, in, cm, mm et em, plus zéro sans unité ; em se calcule à partir de la taille de police finale en cascade de son élément déclarant, et les enfants héritent de cette longueur en points calculée
L'espacement des lettres et des mots ont un ordre de déclaration et une priorité important indépendants, et le raccourci de police préserve les deux composantes ; les déclarations non prises en charge ou invalides suivent le comportement d'ignorance existant du décodeur
Un normal explicite ramène l'espacement global d'apparence correspondant à zéro ; les modes natifs omis conservent le comportement global CharacterSpacing et WordSpacing existant, avance de caractère final comprise
Quand un espacement de lettres explicite active un paragraphe, les unités typographiques visibles reçoivent la moitié des valeurs de style voisines à chaque frontière intérieure après réordonnancement visuel, et les bords de lignes physiques omettent les moitiés extérieures ; les marques et contrôles de format invisibles ne consomment pas d'espacement séparé
SPACE et NBSP reçoivent la moitié de leur espacement de mots de chaque côté de leur cluster façonné, séparateur suivi d'une marque combinante compris ; les autres séparateurs de mots Unicode sont hors de ce profil borné
Un tracking explicite non nul désactive les substitutions optionnelles liga, clig, dlig et hlig tout en conservant les ligatures requises et le crénage ; les unités cursives arabes, rohingya, mandaïques, mongoles, n'ko, phags-pa et syriaques adjacentes suppriment le tracking là où cette implémentation ne peut pas allonger la liaison sans risque
Un espacement négatif participe aux bornes d'encre réelles des glyphes et à l'ajustement des préfixes sans supposer que chaque préfixe plus long est plus large ; l'auto-ajustement met à l'échelle l'espacement absolu en points avec la taille de police tandis que les facteurs em rédigés restent relatifs
L'alignement des lignes coupées en douceur utilise l'avance du contenu visible séparément de l'avance encodée ; les fragments d'espaces de fin qui tiennent restent présents avec leurs offsets source et leurs mappings ToUnicode au lieu d'être supprimés pour centrer ou aligner à droite une ligne
Les séparateurs souples ASCII peuvent chevaucher des frontières de style ou des runs vides, tandis que NBSP reste un cluster insécable et que les coupures de paragraphe explicites conservent leur gestion CRLF distincte ; voir les apparences FreeText par défaut pour la mise en page transformée des annotations
Les runs typés préservent leurs valeurs Double d'origine, V garde le texte brut rédigé et RV écrit l'espacement en points calculé avec une précision d'aller-retour ; les mises à jour natives en lecture seule comparent la sémantique de valeur riche et d'apparence résultante
La conversion décimale d'espacement utilise l'arrondi au plus proche, rattachement au pair pour les valeurs Double finies ; les valeurs RV canoniques normalisent le zéro négatif en zéro et restent inchangées par un second décodage et une sérialisation
Dans ce profil borné, un normal explicite et un zéro explicite calculent le même espacement en points et le même RV canonique, rendant les mises à jour équivalentes réelles en lecture seule des no-ops sémantiques ; les opérations JSON versionnées conservent les octets sources d'origine, et le mode legacy omis reste distinct parce qu'il hérite des options d'apparence globales
Depuis la version 2.943.1, SaveRichTextFieldUpdatesToFile natif publie aussi les octets d'origine exacts quand toutes les mises à jour sont inchangées et que le graphe chargé n'a pas d'éditions en attente, chiffrement AES existant et révisions signées compris ; les éditions de graphe en attente sont préservées dans le candidat publié même quand le nombre de mises à jour de champs est nul
Recompilez les consommateurs Pascal et C++Builder avec les records de runs riches et de glyphes façonnés correspondants et les en-têtes générés ; les structures de callbacks C versionnées et les symboles exportés sont inchangés
Ce profil suit le modèle d'espacement de CSS 2.2 et les règles de bord de ligne, d'unités typographiques et de shaping de CSS Text letter spacing et CSS Text word spacing, avec la couverture bornée de séparateurs et de cursives énoncée ci-dessus
Modes d'espacement · JSON typé · Span de shaping stylé
Les calculs numériques finis prennent en charge les expressions de longueurs calc, min, max et clamp, q, rem et les unités de viewport explicitement configurées ; les longueurs calculées signées alimentent le même shaping, l'ajustement de lignes, la peinture et le comportement de valeur riche canonique