Matemática numérica finita de rich text nativo
El decodificador nativo de rich text XHTML evalúa expresiones finitas calc, min, max y clamp en font-size, tamaño y altura slash del font shorthand, 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 calcula un line height de 12 puntos, un letter spacing de 2 puntos y un word spacing de 3 puntos usando las fuentes suministradas por el llamador y el layout de párrafos 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 la resta binarias exigen whitespace a ambos lados; min y max aceptan expresiones compatibles separadas por comas, y clamp toma tres expresiones compatibles, con su bound inferior ganando cuando los bounds 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
Los em y porcentajes de font-size usan el tamaño de fuente calculado envolvente; los em y porcentajes de line-height y los em de espaciado usan el tamaño de fuente final en cascada del elemento declarante antes de la herencia
rem usa el tamaño de fuente calculado del body; la propia expresión font-size del body usa el tamaño raíz inicial de DefaultStyle.FontSize, mientras que sus demás métricas usan su tamaño final calculado
Las unidades de viewport usan entradas explícitas de width y height en MediaFeatures; esas dimensiones de host son longitudes compatibles con 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 fuente de medios distintos de cero retienen el bound inferior existente de 0.000001 y el superior de 1000000; los valores exactos del bound inferior usan una comparación Double compartida de forma consistente entre targets de compilador, mientras que los valores por debajo del bound siguen rechazándose
vw exige width, vh exige height, y vmin o vmax exigen ambas; las dimensiones ausentes dejan la declaración sin admitir, sin inferencia de escritorio, tamaño de página ni viewport de navegador
Line-height puede calcular un factor heredado sin unidad o una longitud en puntos; las alturas negativas calculadas se acotan a cero, mientras que font-size retiene su rango positivo de admisión existente y el espaciado retiene longitudes en puntos con signo
El letter y el word spacing exigen resultados de longitud; su sintaxis existente de cero desnudo sigue disponible, y el espaciado porcentual no es parte de este perfil
Se aplican la cascada existente por propiedad, las prioridades important y la herencia explícita; la matemática diferida de líneas y espaciados 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 fuente inválidas preservan un fallback admitido; una métrica ganadora sintácticamente admitida que no pueda calcular 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 1e100 como máximo, 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 hacen preflight de valores extremos antes de la operación para que un overflow de punto flotante sin máscara no escape; las comprobaciones finales usan el mismo bound Double en todos los targets de compilador, incluidos divisores subnormales y valores en el límite 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 decodificación frescas y reutilizadas siguiendo siendo utilizables después
Los valores en puntos calculados alimentan las appearances tipadas reales y la serialización RV canónica; las importaciones rich FDF/XFDF de perfil por defecto usan el mismo decodificador sin transportar perfiles de viewport personalizados
Este perfil finito no proporciona otras funciones matemáticas CSS, constantes numéricas, nombres de funciones o unidades escapados, unidades de fuente métricas, unidades de viewport lógicas o dinámicas, custom properties ni layout CSS general
Las reglas aritméticas y relativas a la raíz siguen las porciones soportadas de CSS Values and Units Level 4; el perfil acotado soportado descrito arriba define el comportamiento actual de la librería
Decodificador nativo · Opciones de decodificación · Line height · Run spacing · Font shorthand