Nativ numerisk matematik i rich text
Den nativa XHTML rich-text-avkodaren utvärderar ändliga calc-, min-, max- och clamp-uttryck i font-size, typsnittsgenvägens storlek och snedstreckshöjd, line-height, letter-spacing och 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>
Detta exempel beräknar en radhöjd på 12 punkter, bokstavsavstånd på 2 punkter och ordavstånd på 3 punkter med anroparens typsnitt och befintlig styckelayout
Parentetisk aritmetik stöder addition, subtraktion, multiplikation och division med matchande dimensioner för summor; multiplikation och division spårar längdpotenser, inklusive utjasning i ett uttryck som calc(20pt / 10pt * 6pt)
Binär addition och subtraktion kräver mellanrum på båda sidor; min och max accepterar kompatibla kommaseparerade uttryck, och clamp tar tre kompatibla uttryck, där undre gränsen vinner när gränserna är omvända
Stödda längdenheter är pt, px vid 96 dpi, pc, in, cm, mm, q, em, rem, vw, vh, vmin och vmax; decimaltal och exponenttal använder den befintliga ändliga decimalomvandlingen
Font-size-em och -procent använder den omgivande beräknade teckenstorleken; line-height-em och -procent samt spacing-em använder det deklarerande elementets slutliga kaskaderade teckenstorlek före arv
rem använder den beräknade body-teckenstorleken; bodyns eget font-size-uttryck använder den inledande rotstorleken från DefaultStyle.FontSize, medan dess övriga mått använder sin slutliga beräknade storlek
Viewport-enheter använder uttryckliga width- och height-poster i MediaFeatures; dessa värd-dimensioner är punktkompatibla längder, och em- eller rem-värd-dimensioner använder MediaInitialFontSize med dess befintliga 12-punkters reservvärde vid noll
Värd-dimensioner, upplösning och icke-nollstinledande media-teckenstorlekar behåller den befintliga nedre gränsen 0.000001 och övre gränsen 1000000; exakta nedre gränsvärden använder en delad Double-jämförelse konsekvent över kompilatormål, medan värden under gränsen fortsätter att avvisas
vw kräver width, vh kräver height, och vmin eller vmax kräver båda; saknade dimensioner lämnar deklarationen ogillad, utan slutledning av skrivbord, sidstorlek eller webbläsarviewport
Line-height kan beräknas till en enhetslös ärvd faktor eller en punktlängd; beräknade negativa matematikhöjder kläms till noll, medan font-size behåller sitt befintliga positiva intervall och spacing behåller signerade punktlängder
Bokstavs- och ordavstånd kräver längdresultat; deras befintliga nakna nollsyntax förblir tillgänglig, och procentuellt avstånd är inte del av denna profil
Den befintliga kaskaden per egenskap, important-prioriteringar och explicit arv gäller; fördröjd linje- och avståndsmatematik använder den vinnande slutliga teckenstorleken, och typsnittsgenvägen accepterar mellanrum och division inuti balanserade matematikfunktioner
Ogiltiga font-deklarationer bevarar ett godtaget reservalternativ; ett syntaktiskt godtaget vinnande mått som inte kan beräknas till ett ändligt avgränsat resultat kastar EHPDFHeadlessRichTextCodecError innan runs returneras
Omvandlade värden och lagrade binary64-aritmetiska resultat måste ha storlek högst 1e100, med längdpotenser från -64 till 64; befintliga font-size- och måttbudgeter gäller fortfarande
Multiplikation och division förkontrollerar extrema värden före operationen så att ett omaskerat flyttalsöversväll inte kan undkomma; slutliga kontroller använder samma Double-gräns på alla kompilatormål, inklusive subnormala divisorer och värden vid profilgränsen
Matematiksökningar hedrar MaxNodes och rekursiva uttryck hedrar MaxDepth; annullering bevarar EHPDFOperationCancelled och returnerar inga partiella avkodade runs, och färska samt återanvända decode-options förblir användbara efteråt
Beräknade punktvärden matar faktiska typade utseenden och kanonisk RV-serialisering; rich FDF/XFDF-importer med standardprofilen använder samma avkodare utan att transportera anpassade viewport-profiler
Denna ändliga profil tillhandahåller inte andra CSS-matematikfunktioner, numeriska konstanter, eskaperade matematikfunktions- eller enhetsnamn, måttavledade typenheter, logiska eller dynamiska viewport-enheter, anpassade egenskaper eller allmän CSS-layout
Aritmetik- och rotrelativa regler följer de stödda delarna av CSS Values and Units Level 4; den avgränsade stödda profilen ovan definierar bibliotekets aktuella beteende
Nativ avkodare · Decode-options · Radhöjd · Run-avstånd · Typsnittsgenväg