Native rich-text numeric math

Nativní XHTML rich-text dekodér vyhodnotí konečné výrazy calc, min, max a clamp ve font-size, velikosti font shorthandu i výšce za lomítkem, line-height, letter-spacing i word-spacing

<body xmlns="http://www.w3.org/1999/xhtml" style="font-size:10pt;line-height:calc(1rem + 2pt)">
  <p style="letter-spacing:calc(.1em + 1pt);word-spacing:clamp(1pt, 3pt, 4pt)">Spaced text</p>
</body>

Tenhle příklad spočítá výšku řádku 12 bodů, letter spacing 2 body a word spacing 3 body s využitím písem dodaných volajícím i stávajícího layoutu odstavců

Aritmetika v závorkách podporuje sčítání, odčítání, násobení a dělení se shodnými dimenzemi u součtů; násobení a dělení sleduje mocniny délek, tedy i vykrácení ve výrazu jako calc(20pt / 10pt * 6pt)

Binární sčítání a odčítání vyžadují bílé znaky na obou stranách; min a max přijmou kompatibilní čárkou oddělené výrazy a clamp vezme tři kompatibilní výrazy, přičemž při obrácených mezích vyhrává spodní mez

Podporované délkové jednotky jsou pt, px při 96 dpi, pc, in, cm, mm, q, em, rem, vw, vh, vmin a vmax; desetinná i exponentová čísla použijí stávající konečnou desetinnou konverzi

Font-size em a procenta použijí obklopující spočtenou velikost písma; line-height em a procenta i spacing em použijí finální kaskádovanou velikost písma deklarujícího elementu, dřív před děděním

rem použije spočtenou velikost písma body; vlastní font-size výraz body použije počáteční root velikost z DefaultStyle.FontSize, zatímco jeho ostatní metriky použijí jeho finální spočtenou velikost

Viewport jednotky použijí explicitní položky width a height v MediaFeatures; ty hostovské rozměry jsou délky kompatibilní s body a em či rem hostovské rozměry použijí MediaInitialFontSize se svým stávajícím 12bodovým fallbackem při nule

Hostovské rozměry, rozlišení i nenulové počáteční media velikosti písem si uchovávají stávající spodní mez 0.000001 a horní mez 1000000; přesné hodnoty na spodní hranici použijí konzistentně sdílené porovnání Double napříč kompilátorovými cíli, zatímco hodnoty pod mezí zůstávají odmítnuté

vw vyžaduje width, vh height a vmin či vmax obojí; chybějící rozměry deklaraci nepřijmou, bez jakékoli inference z desktopu, velikosti stránky či viewportu prohlížeče

Line-height se může spočítat na bezjednotkový zděděný koeficient či délku v bodech; spočtené záporné matematické výšky se ořežou na nulu, zatímco font-size si uchovává své stávající kladné přijímací rozpětí a spacing znaménkové délky v bodech

Letter i word spacing vyžadují délkové výsledky; jejich stávající syntaxe holé nuly zůstává dostupná a procentuální spacing není součástí tohoto profilu

Stávající per-property kaskáda, important priority i explicitní dědění platí; odložená matematika řádků i spacingu použije vyhrávající finální velikost písma a font shorthand přijme mezery a dělení uvnitř vyvážených matematických funkcí

Neplatné font deklarace zachovají přijatý fallback; přijatá syntakticky vyhrávající metrika, kterou nejde spočítat na konečný ohraničený výsledek, vyhodí EHPDFHeadlessRichTextCodecError, dřív než se vrátí runy

Konvertované hodnoty i uložené aritmetické výsledky binary64 musí mít velikost nejvýše 1e100, s mocninami délek od -64 do 64; stávající rozpočty font-size i metrik pořád platí

Násobení a dělení dělá preflight extrémních hodnot dřív před operací, takže zamaskované přetečení plovoucí řády nemůže uniknout; finální kontroly použijí tutéž mez Double na všech kompilátorových cílech, tedy i u subnormálních dělitelů a hodnot na hranici profilu

Matematické skeny respektují MaxNodes a rekurzivní výrazy MaxDepth; zrušení si uchovává EHPDFOperationCancelled a nevrací žádné částečné dekódované runy, přičemž čerstvé i znovu použité decode volby zůstávají poté použitelné

Spočtené bodové hodnoty napájejí skutečná typovaná appearance i kanonickou serializaci RV; rich importy FDF/XFDF default profilu použijí tentýž dekodér, bez transportu vlastních viewport profilů

Ten konečný profil neposkytuje další CSS matematické funkce, číselné konstanty, escapované názvy matematických funkcí či jednotek, metrikou odvozené font jednotky, logické či dynamické viewport jednotky, vlastní vlastnosti ani obecný CSS layout

Aritmetiku i pravidla root-relative řídí podporované části CSS Values and Units Level 4; výše uvedený ohraničený podporovaný profil definuje aktuální chování knihovny

Nativní dekodér · Decode volby · Line height · Run spacing · Font shorthand