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