Native rich-text numeric math
De native XHTML rich-text-decoder evalueert eindige calc-, min-, max- en clamp-expressies in font-size, font shorthand size en slash height, line-height, letter-spacing en 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>
Dit voorbeeld rekent een lineheight van 12 punten uit, letterspacing van 2 punten en wordspacing van 3 punten, met de fonts en bestaande paragraph-layout van de caller
Arithmetic tussen haakjes ondersteunt optellen, aftrekken, vermenigvuldigen en delen met matchende dimensies voor sommen; vermenigvuldigen en delen volgen length powers, inclusief opheffing in een expressie als calc(20pt / 10pt * 6pt)
Binair optellen en aftrekken vraagt whitespace aan beide kanten; min en max accepteren compatibele kommagescheiden expressies, en clamp neemt drie compatibele expressies, waarbij diens ondergrens wint wanneer de grenzen zijn omgedraaid
Ondersteunde length-units zijn pt, px bij 96 dpi, pc, in, cm, mm, q, em, rem, vw, vh, vmin en vmax; decimale en exponentgetallen gebruiken de bestaande eindige decimale conversie
Font-size em en percentages gebruiken de omringende computed font size; line-height em en percentages en spacing em gebruiken de uiteindelijke cascaded font size van het declarerende element vóór inheritance
rem gebruikt de computed body font size; de eigen font-size-expressie van de body gebruikt de initiele rootgrootte uit DefaultStyle.FontSize, terwijl diens overige metrics diens uiteindelijke computed size gebruiken
Viewport-units gebruiken expliciete width- en height-entries in MediaFeatures; deze host-dimensies zijn point-compatibele lengtes, en em- of rem-host-dimensies gebruiken MediaInitialFontSize met diens bestaande 12-punts fallback bij nul
Host-dimensies, resolutie en niet-nul initiële media font sizes behouden de bestaande ondergrens van 0,000001 en bovengrens van 1000000; exacte ondergrenswaarden gebruiken consistent een gedeelde Double-vergelijking over compilerdoelen heen, terwijl waarden onder de grens geweigerd blijven
vw vraagt width, vh vraagt height, en vmin of vmax vragen beide; ontbrekende dimensies laten de declaratie niet toe, met geen enkele desktop-, paginaformaat- of browser-viewport-inferentie
Line-height kan naar een unitless geërfde factor of een puntlengte rekenen; computed negatieve math-heights klemmen af op nul, terwijl font-size diens bestaande positieve toelatingsrange behoudt en spacing signed puntlengtes behoudt
Letter- en wordspacing vragen lengteresultaten; diens bestaande bare zero-syntax blijft beschikbaar, en percentage-spacing hoort niet bij dit profiel
De bestaande per-property cascade, important-prioriteiten en expliciete inheritance gelden; uitgestelde line- en spacing-math gebruikt de winnende uiteindelijke font size, en font shorthand accepteert spaties en deling in gebalanceerde math-functies
Ongeldige font-declaraties behouden een toegelaten fallback; een syntactisch toegelaten winnende metric die niet naar een eindig begrensd resultaat kan rekenen, werpt EHPDFHeadlessRichTextCodecError op vóór runs worden teruggegeven
Geconverteerde waarden en opgeslagen binary64-arithmetic-resultaten moeten een magnitude van ten hoogste 1e100 hebben, met length powers van -64 tot en met 64; bestaande font-size- en metric-budgets gelden nog steeds
Vermenigvuldigen en delen doen een preflight op extreme waarden vóór de operatie zodat een ongemaskeerde floating-point overflow niet kan ontsnappen; eindchecks gebruiken dezelfde Double-grens op alle compilerdoelen, inclusief subnormale delers en waarden op de profielgrens
Math-scans honoreren MaxNodes en recursieve expressies honoreren MaxDepth; annulering behoudt EHPDFOperationCancelled en geeft geen partiele gedecodeerde runs terug, met verse en hergebruikte decode-opties daarna bruikbaar
Computed puntwaarden voeden echte getypeerde appearances en canonieke RV-serialisatie; default-profiel rich FDF/XFDF-imports gebruiken dezelfde decoder zonder custom viewport-profielen te transporteren
Dit eindige profiel levert geen andere CSS math-functies, numerieke constanten, escaped math-functie- of unitnamen, metric-derived font units, logische of dynamische viewport-units, custom properties of algemene CSS-layout
De arithmetic- en root-relative-regels volgen de ondersteunde delen van CSS Values and Units Level 4; het hierboven begrensde ondersteunde profiel definieert het huidige gedrag van de library
Native decoder · Decode-opties · Line height · Run spacing · Font shorthand