Native rich-text run spacing

Rich appearance aplikují autorské letter i word spacing během shapingu, fitování řádků, reshaping fyzických řádků, zarovnání i malování, s využitím dodaných písem a stávajícího ohraničeného rich-text layoutu

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

Ohraničený inline CSS profil přijme normal, inherit, initial, unset, znaménkové pt, px při 96 dpi, pc, in, cm, mm i em délky, plus bezjednotkovou nulu; em se počítá z finální kaskádované velikosti písma svého deklarujícího elementu a potomci dědí tu spočtenou délku v bodech

Letter i word spacing mají nezávislé pořadí deklarací i important prioritu a font shorthand zachová obě složky; nepodporované či neplatné deklarace se řídí stávajícím chováním ignorování dekodéru

Explicitní normal resetuje odpovídající globální appearance spacing na nulu; vynechané nativní režimy si ponechávají stávající chování globálních CharacterSpacing a WordSpacing, tedy i jeho advance závěrečného znaku

Když explicitní letter spacing aktivuje odstavec, viditelné typografické jednotky dostanou po vizuálním přeřazení poloviny sousedních stylů na každé vnitřní hranici a hrany fyzických řádků vnější poloviny vynechají; značky i neviditelné formátovací řídicí znaky samostatný spacing nekonzumují

SPACE a NBSP dostanou polovinu svého word spacing na každé straně svého shaped clusteru, tedy i oddělovač následovaný kombinující značkou; ostatní Unicode oddělovače slov jsou mimo tenhle ohraničený profil

Nenulový explicitní tracking vypne volitelné substituce liga, clig, dlig a hlig, při zachování povinných ligatur i kerningu; kurzivní jednotky arabštiny, rohinžštiny, mandaičtiny, mongolštiny, N'Ko, Phags-pa a syrštiny potlačí tracking tam, kde tahle implementace bezpečně neumí prodloužit spoj

Záporný spacing se účastní skutečných mezí glyfového inku i fitování prefixů, bez předpokladu, že delší prefix je vždy širší; auto-fit škáluje absolutní point spacing spolu s velikostí písma, zatímco autorské em koeficienty zůstávají relativní

Zarovnání soft-wrapped řádků používá posun viditelného obsahu odděleně od kódovaného posunu; fittingové fragmenty s koncovou mezerou zůstávají přítomné se zdrojovými ofsety a mapováními ToUnicode, namísto aby se mazaly kvůli centrování či pravému zarovnání řádku

ASCII měkké oddělovače mohou zasahovat přes hranice stylů či prázdné runy, zatímco NBSP zůstává nerozdělitelným clusterem a explicitní konce odstavců si ponechávají samostatné zacházení s CRLF; transformované rozvržení anotací popisují výchozí appearance FreeText

Typované runy si uchovávají původní hodnoty Double, V si ponechá autorský prostý text a RV zapíše spočtený point spacing s přesností round tripu; nativní read-only aktualizace porovnávají výslednou rich hodnotu i sémantiku appearance

Desetinná konverze spacingu používá round-to-nearest, ties-to-even pro konečné hodnoty Double; kanonické RV hodnoty normalizují zápornou nulu na nulu a druhé dekódování a serializace je nemění

Uvnitř tohoto ohraničeného profilu se explicitní normal i explicitní nula spočtou na stejný point spacing i kanonické RV, takže skutečně ekvivalentní read-only aktualizace jsou sémantické no-opy; verzované JSON operace si ponechávají původní zdrojové bajty a vynechaný režim legacy zůstává odlišný, protože dědí globální volby appearance

Od verze 2.943.1 publikuje nativní SaveRichTextFieldUpdatesToFile přesné původní bajty i tehdy, když jsou všechny aktualizace nezměněné a načtený graf nemá čekající editace, tedy i se stávajícím šifrováním AES a podepsanými revizemi; čekající grafové editace se do publikovaného kandidáta zachovají, i když je počet aktualizací polí nulový

Pascal i C++Builder konzumenty znovu sestavte s odpovídajícími záznamy rich runů a shaped glyfů i generovanými hlavičkami; verzované struktury C callbacků i exportované symboly zůstávají nezměněné

Tenhle profil řídí spacing model z CSS 2.2 a pravidla line-edge, typografických jednotek a shapingu z CSS Text letter spacing a CSS Text word spacing, s výše uvedeným ohraničeným pokrytím oddělovačů i kurzivy

Spacing režimy · Typovaný JSON · Styled shaping span

Konečná numerická matematika podporuje délkové výrazy calc, min, max a clamp, q, rem i explicitně nakonfigurované viewport jednotky; znaménkové spočtené délky napájejí totéž shaping, fitování řádků, malování i chování kanonických rich hodnot