Math numérico nativo de rich text
O decodificador nativo de rich text XHTML avalia expressões finitas calc, min, max e clamp em font-size, tamanho do shorthand de fonte e altura após a barra, line-height, letter-spacing e 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 exemplo calcula um line height de 12 pontos, letter spacing de 2 pontos e word spacing de 3 pontos usando as fontes fornecidas pelo caller e o layout de parágrafos existente
Aritmética entre parênteses suporta adição, subtração, multiplicação e divisão com dimensões compatíveis para somas; multiplicação e divisão rastreiam potências de comprimento, incluindo cancelamento em uma expressão como calc(20pt / 10pt * 6pt)
Adição e subtração binárias exigem whitespace dos dois lados; min e max aceitam expressões compatíveis separadas por vírgulas, e clamp recebe três expressões compatíveis, com o limite inferior vencendo quando os limites estão invertidos
Unidades de comprimento suportadas são pt, px a 96 dpi, pc, in, cm, mm, q, em, rem, vw, vh, vmin e vmax; números decimais e de expoente usam a conversão decimal finita existente
em e porcentagens de font-size usam o tamanho de fonte computado envolvente; em e porcentagens de line-height e em de spacing usam o tamanho de fonte final da cascata do elemento declarante antes da herança
rem usa o tamanho de fonte computado do body; a própria expressão de font-size do body usa o tamanho raiz inicial de DefaultStyle.FontSize, enquanto suas outras métricas usam seu tamanho computado final
Unidades de viewport usam entradas explícitas de width e height em MediaFeatures; essas dimensões do host são comprimentos compatíveis com pontos, e dimensões de host em em ou rem usam MediaInitialFontSize com seu fallback existente de 12 pontos quando zero
Dimensões de host, resolução e tamanhos iniciais de fonte de media não nulos retêm o limite inferior existente de 0,000001 e o superior de 1000000; valores exatamente no limite inferior usam uma comparação Double compartilhada de forma consistente entre targets de compiladores, enquanto valores abaixo do limite continuam recusados
vw exige width, vh exige height, e vmin ou vmax exigem ambos; dimensões faltantes deixam a declaração não admitida, sem inferência de desktop, tamanho de página nem viewport de browser
Line-height pode computar para um fator herdado sem unidade ou um comprimento em pontos; alturas math negativas computadas são clampeadas a zero, enquanto font-size retém sua faixa positiva de admissão existente e spacing retém comprimentos em pontos com sinal
Letter e word spacing exigem resultados de comprimento; a sintaxe bare zero existente continua disponível, e spacing em porcentagem não faz parte deste perfil
A cascata existente por propriedade, prioridades important e herança explícita se aplicam; math de linha e spacing postergado usa o tamanho de fonte final vencedor, e o shorthand de fonte aceita espaços e divisão dentro de funções math balanceadas
Declarações de fonte inválidas preservam um fallback admitido; uma métrica vencedora admitida sintaticamente que não computa para um resultado finito delimitado levanta EHPDFHeadlessRichTextCodecError antes de os runs serem retornados
Valores convertidos e resultados armazenados de aritmética binary64 precisam ter magnitude de no máximo 1e100, com potências de comprimento de -64 a 64; os budgets existentes de font-size e métricas continuam se aplicando
Multiplicação e divisão fazem preflight de valores extremos antes da operação para que um overflow de ponto flutuante sem máscara não escape; checks finais usam o mesmo limite Double em todos os targets de compiladores, incluindo divisores subnormais e valores na fronteira do perfil
Scans de math honram MaxNodes e expressões recursivas honram MaxDepth; cancelamento retém EHPDFOperationCancelled e não retorna runs decodificados parciais, com opções de decode novas e reutilizadas permanecendo utilizáveis depois
Valores de ponto computados alimentam appearances tipadas reais e serialização RV canônica; imports rich FDF/XFDF de perfil default usam o mesmo decodificador sem transportar perfis de viewport customizados
Este perfil finito não fornece outras funções math de CSS, constantes numéricas, nomes escapados de funções math ou unidades, unidades de fonte derivadas de métricas, unidades de viewport lógicas ou dinâmicas, custom properties nem layout geral de CSS
As regras de aritmética e relativas à raiz seguem as partes suportadas de CSS Values and Units Level 4; o perfil suportado delimitado acima define o comportamento atual da library
Decodificador nativo · Opções de decode · Line height · Run spacing · Font shorthand