Native Rich-Text-numerische Mathematik
Der native XHTML-Rich-Text-Decoder evaluiert endliche calc-, min-, max- und clamp-Ausdrücke in font-size, Font-Shorthand-Größe und Slash-Höhe, line-height, letter-spacing und 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>
Dieses Beispiel berechnet eine 12-Punkte-Zeilenhöhe, 2-Punkte-Letter-Spacing und 3-Punkte-Word-Spacing unter Verwendung der vom Aufrufer gelieferten Fonts und des bestehenden Absatzlayouts
Klammerarithmetik unterstützt Addition, Subtraktion, Multiplikation und Division mit passenden Dimensionen für Summen; Multiplikation und Division verfolgen Längen-Potenzen, einschließlich Kürzung in einem Ausdruck wie calc(20pt / 10pt * 6pt)
Binäre Addition und Subtraktion verlangen Whitespace auf beiden Seiten; min und max akzeptieren kommagetrennte kompatible Ausdrücke, und clamp nimmt drei kompatible Ausdrücke, wobei die untere Grenze gewinnt, wenn die Grenzen vertauscht sind
Unterstützte Längeneinheiten sind pt, px bei 96 dpi, pc, in, cm, mm, q, em, rem, vw, vh, vmin und vmax; Dezimal- und Exponentenzahlen nutzen die bestehende endliche Dezimalkonvertierung
Font-size-em und -Prozentwerte nutzen die umgebende berechnete Fontgröße; line-height-em und -Prozentwerte sowie spacing-em nutzen die finale kaskadierte Fontgröße des deklarierenden Elements vor der Vererbung
rem nutzt die berechnete Body-Fontgröße; der eigene font-size-Ausdruck des Body nutzt die initiale Root-Größe aus DefaultStyle.FontSize, während seine anderen Metriken seine finale berechnete Größe nutzen
Viewport-Einheiten nutzen explizite width- und height-Einträge in MediaFeatures; diese Host-Dimensionen sind punktkompatible Längen, und em- oder rem-Host-Dimensionen nutzen MediaInitialFontSize mit dem bestehenden 12-Punkte-Fallback bei null
Host-Dimensionen, Resolution und nonzero initiale Media-Fontgrößen behalten die bestehende untere Grenze 0.000001 und obere Grenze 1000000; exakte untere Grenzwerte nutzen durchgängig einen gemeinsamen Double-Vergleich über Compiler-Ziele hinweg, während Werte unter der Grenze weiterhin abgelehnt werden
vw verlangt width, vh verlangt height, und vmin oder vmax verlangen beide; fehlende Dimensionen lassen die Deklaration unzugelassen, ohne Desktop-, Seitenformat- oder Browser-Viewport-Inferenz
Line-height kann zu einem einheitslosen geerbten Faktor oder einer Punktlänge berechnen; berechnete negative Mathematik-Höhen klemmen auf null, während font-size ihre bestehende positive Admission-Range behält und spacing vorzeichenbehaftete Punktlängen behält
Letter- und Word-Spacing verlangen Längenresultate; die bestehende bare-zero-Syntax bleibt verfügbar, und Prozentwert-Spacing ist nicht Teil dieses Profils
Die bestehende Kaskade pro Property, Important-Prioritäten und explizite Vererbung gelten; verzögerte Zeilen- und Spacing-Mathematik nutzt die gewinnende finale Fontgröße, und Font-Shorthand akzeptiert Leerzeichen und Division innerhalb balancierter Mathematikfunktionen
Ungültige Font-Deklarationen bewahren einen zugelassenen Fallback; eine syntaktisch zugelassene gewinnende Metrik, die nicht auf ein endliches begrenztes Resultat berechnen kann, wirft EHPDFHeadlessRichTextCodecError, bevor Runs zurückgegeben werden
Konvertierte Werte und gespeicherte Binary64-Arithmetik-Resultate müssen eine Größe von höchstens 1e100 haben, mit Längen-Potenzen von -64 bis 64; bestehende Font-size- und Metrik-Budgets gelten weiterhin
Multiplikation und Division preflichten extreme Werte vor der Operation, damit ein unmaskierter Floating-Point-Overflow nicht entweichen kann; finale Checks nutzen dieselbe Double-Grenze auf allen Compiler-Zielen, einschließlich subnormaler Divisoren und Werte an der Profilgrenze
Mathematik-Scans beachten MaxNodes, und rekursive Ausdrücke beachten MaxDepth; Abbruch behält EHPDFOperationCancelled und liefert keine partialen dekodierten Runs, wobei frische und wiederverwendete Decode-Optionen danach nutzbar bleiben
Berechnete Punktwerte fließen in echte typed Appearances und kanonische RV-Serialisierung; Rich-FDF/XFDF-Importe mit Default-Profil nutzen denselben Decoder, ohne eigene Viewport-Profile zu transportieren
Dieses endliche Profil bietet keine anderen CSS-Mathematikfunktionen, numerischen Konstanten, escaped Mathematikfunktions- oder Einheitsnamen, metrikabgeleiteten Font-Einheiten, logischen oder dynamischen Viewport-Einheiten, Custom Properties oder allgemeines CSS-Layout
Die Arithmetik- und Root-relativen Regeln folgen den unterstützten Teilen von CSS Values and Units Level 4; das oben beschriebene begrenzte unterstützte Profil definiert das aktuelle Verhalten der Bibliothek
Native Decoder · Decode-Optionen · Zeilenhöhe · Run-Spacing · Font-Shorthand