Native Rich-Text-Run-Spacing

Rich-Appearances wenden authored Letter- und Word-Spacing während Shaping, Line-Fitting, Physical-Line-Reshaping, Ausrichtung und Malen an, mit den gelieferten Fonts und dem bestehenden begrenzten Rich-Text-Layout

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

Das begrenzte Inline-CSS-Profil akzeptiert normal, inherit, initial, unset, vorzeichenbehaftete pt-, px- bei 96 dpi-, pc-, in-, cm-, mm- und em-Längen plus einheitslose null; em berechnet aus der finalen kaskadierten Fontgröße seines deklarierenden Elements, und Kinder erben diese berechnete Punktlänge

Letter- und Word-Spacing haben unabhängige Deklarationsreihenfolge und Important-Priorität, und Font-Shorthand bewahrt beide Komponenten; nicht unterstützte oder ungültige Deklarationen folgen dem bestehenden Ignore-Verhalten des Decoders

Explizites normal setzt das entsprechende globale Appearance-Spacing auf null zurück; ausgelassene native Modi behalten das bestehende globale CharacterSpacing- und WordSpacing-Verhalten, einschließlich seines Trailing-Character-Advance

Wenn explizites Letter-Spacing einen Absatz aktiviert, erhalten sichtbare typografische Einheiten an jeder inneren Grenze nach visueller Umordnung die Hälfte der benachbarten Style-Werte, und physische Zeilenränder lassen die äußeren Hälften weg; Marks und unsichtbare Format-Kontrollen konsumieren kein separates Spacing

SPACE und NBSP erhalten auf jeder Seite ihres shaped Clusters die Hälfte ihres Word-Spacings, einschließlich eines Separators mit folgendem Combining Mark; andere Unicode-Wortseparatoren liegen außerhalb dieses begrenzten Profils

Nicht-null explizites Tracking deaktiviert die optionalen liga-, clig-, dlig- und hlig-Substitutionen und behält erforderliche Ligaturen und Kerning; angrenzende arabische, Rohingya-, Mandaic-, mongolische, N'Ko-, Phags-pa- und syrische Kursiv-Einheiten unterdrücken Tracking, wo diese Implementierung die Verbindung nicht sicher dehnen kann

Negatives Spacing beteiligt sich an echten Glyph-Ink-Bounds und Prefix-Fitting, ohne anzunehmen, dass jeder längere Prefix breiter ist; Auto-Fit skaliert absolute Punkt-Spacing gemeinsam mit der Fontgröße, während authored em-Faktoren relativ bleiben

Soft-wrap-Zeilenausrichtung nutzt den sichtbaren Inhalts-Advance getrennt vom kodierten Advance; hineinpassende Trailing-Space-Fragmente bleiben mit ihren Quell-Offsets und ToUnicode-Mappings erhalten, statt zum Zentrieren oder Rechtsbündigen einer Zeile gelöscht zu werden

ASCII-Weichtrenner dürfen Stilgrenzen oder leere Runs überspannen, während NBSP ein Nicht-Umbruch-Cluster bleibt und explizite Absatzumbrüche ihre separate CRLF-Behandlung behalten; siehe FreeText-Default-Appearances für transformiertes Annotation-Layout

Typed Runs bewahren ihre originalen Double-Werte, V behält authored Plain-Text, und RV schreibt berechnetes Punkt-Spacing mit Round-Trip-Präzision; native Read-only-Updates vergleichen die resultierende Rich-Value- und Appearance-Semantik

Die Spacing-Dezimalkonvertierung nutzt Round-to-Nearest, Ties-to-Even für endliche Double-Werte; kanonische RV-Werte normalisieren negative null zu null und bleiben durch eine zweite Decode- und Serialisierung unverändert

Innerhalb dieses begrenzten Profils berechnen explizites normal und explizite null dasselbe Punkt-Spacing und dasselbe kanonische RV, wodurch echte äquivalente Read-only-Updates zu semantischen No-ops werden; versionierte JSON-Operationen behalten die Original-Quell-Bytes, und der ausgelassene Legacy-Modus bleibt unterscheidbar, weil er die globalen Appearance-Optionen erbt

Seit Version 2.943.1 veröffentlicht natives SaveRichTextFieldUpdatesToFile auch die exakten Original-Bytes, wenn alle Updates unverändert sind und der geladene Graph keine ausstehenden Editierungen hat, einschließlich bestehender AES-Verschlüsselung und signierter Revisionen; ausstehende Graph-Editierungen bleiben im veröffentlichten Kandidaten erhalten, selbst wenn die Feld-Update-Anzahl null ist

Pascal- und C++Builder-Consumer mit passenden Rich-Run- und Shaped-Glyph-Records und generierten Headern neu bauen; die versionierten C-Callback-Strukturen und exportierten Symbole sind unverändert

Dieses Profil folgt dem Spacing-Modell in CSS 2.2 und den Line-Edge-, Typographic-Unit- und Shaping-Regeln in CSS Text letter spacing und CSS Text word spacing, mit der oben beschriebenen begrenzten Separator- und Cursive-Abdeckung

Spacing-Modi · Typed JSON · Styled Shaping Span

Endliche numerische Mathematik unterstützt calc-, min-, max- und clamp-Längenausdrücke, q, rem und explizit konfigurierte Viewport-Einheiten; vorzeichenbehaftete berechnete Längen fließen in dasselbe Shaping, Line-Fitting-, Mal- und kanonische Rich-Value-Verhalten