Math numérico nativo de rich text
O descodificador nativo de rich text XHTML avalia expressões finitas calc, min, max e clamp em font-size, tamanho do shorthand de tipo de letra 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 os tipos de letra fornecidos 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 comprimentos, incluindo cancelamento numa 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 a vencer 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 percentagens de font-size usam o tamanho de tipo de letra computado envolvente; em e percentagens de line-height e em de spacing usam o tamanho de tipo de letra final da cascata do elemento declarante antes da herança
rem usa o tamanho de tipo de letra computado do body; a própria expressão de font-size do body usa o tamanho raiz inicial de DefaultStyle.FontSize, enquanto as suas outras métricas usam o seu tamanho computado final
Unidades de viewport usam entradas explícitas de width e height em MediaFeatures; estas dimensões do host são comprimentos compatíveis com pontos, e dimensões de host em em ou rem usam MediaInitialFontSize com o fallback existente dele de 12 pontos quando zero
Dimensões de host, resolução e tamanhos iniciais de tipo de letra 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 partilhada 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 em falta 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 a sua gama positiva de admissão existente e o 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 o spacing em percentagem não faz parte deste perfil
A cascata existente por propriedade, prioridades important e herança explícita aplicam-se; math de linha e spacing adiado usa o tamanho de tipo de letra final vencedor, e o shorthand de tipo de letra aceita espaços e divisão dentro de funções math balanceadas
Declarações de tipo de letra 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 devolvidos
Valores convertidos e resultados armazenados de aritmética binary64 têm de ter magnitude de no máximo 1e100, com potências de comprimentos de -64 a 64; os budgets existentes de font-size e métricas continuam a aplicar-se
Multiplicação e divisão fazem preflight de valores extremos antes da operação para que um overflow de vírgula flutuante sem máscara não escape; as verificações 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; o cancelamento retém EHPDFOperationCancelled e não devolve runs descodificados parciais, com opções de decode novas e reutilizadas a permanecer utilizáveis depois
Valores de ponto computados alimentam aparências tipadas reais e serialização RV canónica; importações rich FDF/XFDF de perfil default usam o mesmo descodificador sem transportar perfis de viewport personalizados
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 tipos de letra 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
Descodificador nativo · Opções de decode · Line height · Run spacing · Font shorthand