Calcul numérique du texte enrichi natif
Le décodeur de texte enrichi XHTML natif évalue des expressions finies calc, min, max et clamp dans font-size, taille et hauteur slash du raccourci de police, line-height, letter-spacing et 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>
Cet exemple calcule une hauteur de ligne de 12 points, un espacement de lettres de 2 points et un espacement de mots de 3 points en utilisant les polices fournies par l'appelant et le layout de paragraphe existant
L'arithmétique entre parenthèses prend en charge addition, soustraction, multiplication et division avec des dimensions compatibles pour les sommes ; multiplication et division suivent les puissances de longueurs, simplification comprise dans une expression comme calc(20pt / 10pt * 6pt)
L'addition et la soustraction binaires exigent des blancs des deux côtés ; min et max acceptent des expressions compatibles séparées par virgules, et clamp prend trois expressions compatibles, la borne inférieure gagnant quand les bornes sont inversées
Les unités de longueur prises en charge sont pt, px à 96 dpi, pc, in, cm, mm, q, em, rem, vw, vh, vmin et vmax ; les nombres décimaux et exponentiels utilisent la conversion décimale finie existante
Les em et pourcentages de font-size utilisent la taille de police calculée englobante ; les em et pourcentages de line-height et les em d'espacement utilisent la taille de police finale en cascade de l'élément déclarant avant héritage
rem utilise la taille de police calculée du body ; l'expression font-size du body elle-même utilise la taille racine initiale de DefaultStyle.FontSize, tandis que ses autres métriques utilisent sa taille calculée finale
Les unités de viewport utilisent les entrées width et height explicites de MediaFeatures ; ces dimensions hôtes sont des longueurs compatibles points, et les dimensions hôtes em ou rem utilisent MediaInitialFontSize avec son repli existant de 12 points à zéro
Dimensions hôtes, résolution et tailles de police média initiales non nulles gardent la borne inférieure existante de 0,000001 et la borne supérieure de 1000000 ; les valeurs exactes de borne inférieure utilisent une comparaison Double partagée de façon cohérente entre cibles de compilation, tandis que les valeurs sous la borne restent refusées
vw exige width, vh exige height, et vmin ou vmax exigent les deux ; des dimensions manquantes laissent la déclaration non admise, sans inférence de bureau, de taille de page ni de viewport de navigateur
La hauteur de ligne peut calculer vers un facteur sans unité hérité ou une longueur en points ; les hauteurs négatives calculées sont bornées à zéro, tandis que font-size garde sa plage d'admission positive existante et l'espacement garde des longueurs en points signées
L'espacement des lettres et des mots exige des résultats de longueur ; la syntaxe zéro nu existante reste disponible, et l'espacement en pourcentage ne fait pas partie de ce profil
La cascade existante par propriété, les priorités important et l'héritage explicite s'appliquent ; le calcul différé de ligne et d'espacement utilise la taille de police finale gagnante, et le raccourci de police accepte des espaces et la division à l'intérieur de fonctions mathématiques équilibrées
Des déclarations de polices invalides préservent un repli admis ; une métrique gagnante admise syntaxiquement mais qui ne peut pas calculer vers un résultat fini borné lève EHPDFHeadlessRichTextCodecError avant le retour des runs
Les valeurs converties et les résultats d'arithmétique binary64 stockés doivent être de magnitude au plus 1e100, avec des puissances de longueurs de -64 à 64 ; les budgets existants de font-size et de métriques s'appliquent toujours
Multiplication et division précontrôlent les valeurs extrêmes avant l'opération pour qu'un débordement flottant non masqué ne puisse pas s'échapper ; les contrôles finaux utilisent la même borne Double sur toutes les cibles de compilation, diviseurs dénormaux et valeurs à la frontière du profil compris
Les scans mathématiques honorent MaxNodes et les expressions récursives honorent MaxDepth ; l'annulation conserve EHPDFOperationCancelled et ne retourne aucun run décodé partiel, des options de décodage neuves ou réutilisées restant utilisables ensuite
Les valeurs en points calculées alimentent les apparences typées réelles et la sérialisation RV canonique ; les imports FDF/XFDF riches au profil par défaut utilisent le même décodeur sans transporter de profils de viewport personnalisés
Ce profil fini ne fournit pas les autres fonctions mathématiques CSS, les constantes numériques, les noms de fonctions ou d'unités mathématiques échappés, les unités de police dérivées de métriques, les unités de viewport logiques ou dynamiques, les custom properties ni le layout CSS général
Les règles d'arithmétique et relatives à la racine suivent les portions prises en charge de CSS Values and Units Level 4 ; le profil borné pris en charge ci-dessus définit le comportement actuel de la bibliothèque
Décodeur natif · Options de décodage · Hauteur de ligne · Espacement des runs · Raccourci de police