Matemática numérica de rich text nativo
El decoder de rich text nativo de XHTML evalúa expresiones finitas de calc, min, max y clamp en font-size, tamaño del font shorthand con slash height, line-height, letter-spacing y 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>
Este ejemplo computa una altura de línea de 12 puntos, letter spacing de 2 puntos y word spacing de 3 puntos usando las fuentes suministradas por el caller y el layout de párrafo existente
La aritmética entre paréntesis soporta suma, resta, multiplicación y división con dimensiones coincidentes para las sumas; la multiplicación y la división rastrean potencias de longitud, incluida la cancelación en una expresión como calc(20pt / 10pt * 6pt)
La suma y resta binarias exigen espacio en blanco a ambos lados; min y max aceptan expresiones compatibles separadas por comas, y clamp toma tres expresiones compatibles, con su límite inferior ganando cuando los límites están invertidos
Las unidades de longitud soportadas son pt, px a 96 dpi, pc, in, cm, mm, q, em, rem, vw, vh, vmin y vmax; los números decimales y exponenciales usan la conversión decimal finita existente
El em y los porcentajes de font-size usan el tamaño de fuente computado que encierra; el em y los porcentajes de line-height y el em de spacing usan el tamaño de fuente final en cascada del elemento declarante antes de la herencia
rem usa el tamaño de fuente computado del body; la propia expresión font-size del body usa el tamaño raíz inicial de DefaultStyle.FontSize, mientras que sus otras métricas usan su tamaño computado final
Las unidades de viewport usan entradas explícitas de width y height en MediaFeatures; esas dimensiones de host son longitudes compatibles en puntos, y las dimensiones de host em o rem usan MediaInitialFontSize con su fallback existente de 12 puntos cuando es cero
Las dimensiones de host, la resolución y los tamaños iniciales de media font distintos de cero retienen el límite inferior existente de 0.000001 y el superior de 1000000; los valores exactos del límite inferior usan una comparación Double compartida de forma consistente entre targets de compilador, mientras que los valores por debajo del límite siguen rechazándose
vw exige width, vh exige height, y vmin o vmax exigen ambas; las dimensiones faltantes dejan la declaración sin admitir, sin inferencia de escritorio, tamaño de página ni viewport de navegador
Line-height puede computar a un factor heredado sin unidad o a una longitud en puntos; las alturas matemáticas negativas computadas se recortan a cero, mientras que font-size retiene su rango existente de admisión positiva y el spacing retiene longitudes en puntos con signo
El letter y word spacing exigen resultados de longitud; su sintaxis existente de cero simple sigue disponible, y el spacing porcentual no forma parte de este perfil
El cascade existente por propiedad, las prioridades important y la herencia explícita se aplican; la matemática diferida de línea y spacing usa el tamaño de fuente final ganador, y el font shorthand acepta espacios y división dentro de funciones matemáticas balanceadas
Las declaraciones de font inválidas preservan un fallback admitido; una métrica ganadora admitida sintácticamente que no puede computar a un resultado finito acotado lanza EHPDFHeadlessRichTextCodecError antes de devolver runs
Los valores convertidos y los resultados de aritmética binary64 almacenados deben tener magnitud de como máximo 1e100, con potencias de longitud de -64 a 64; los presupuestos existentes de font-size y métricas siguen aplicándose
La multiplicación y la división preverifican valores extremos antes de la operación para que un overflow de punto flotante sin máscara no escape; las verificaciones finales usan el mismo límite Double en todos los targets de compilador, incluidos divisores subnormales y valores en el borde del perfil
Los escaneos matemáticos honran MaxNodes y las expresiones recursivas honran MaxDepth; la cancelación retiene EHPDFOperationCancelled y no devuelve runs decodificados parciales, con las opciones de decode frescas y reutilizadas siguiendo utilizables después
Los valores en puntos computados alimentan apariencias tipadas reales y la serialización RV canónica; los imports rich FDF/XFDF del perfil predeterminado usan el mismo decoder sin transportar perfiles de viewport personalizados
Este perfil finito no provee otras funciones matemáticas CSS, constantes numéricas, nombres de funciones o unidades escapadas, unidades de fuente derivadas de métricas, unidades de viewport lógicas o dinámicas, custom properties ni layout CSS general
La aritmética y las reglas relativas a la raíz siguen las porciones soportadas de CSS Values and Units Level 4; el perfil acotado soportado de arriba define el comportamiento actual de la librería
Decoder nativo · Opciones de decode · Altura de línea · Spacing de runs · Font shorthand