네이티브 리치 텍스트 숫자 수학
네이티브 XHTML 리치 텍스트 디코더는 font-size, font shorthand 크기와 슬래시 높이, line-height, letter-spacing, word-spacing에서 유한한 calc, min, max, clamp 식을 평가합니다
<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>
이 예제는 호출자가 공급한 폰트와 기존 문단 레이아웃으로 12포인트 줄 높이, 2포인트 자간, 3포인트 단어 간격을 계산합니다
괄호친 산술은 차원이 맞는 합에 대해 덧셈, 뺄셈, 곱셈, 나눗셈을 지원합니다. 곱셈과 나눗셈은 calc(20pt / 10pt * 6pt) 같은 식의 상쇄를 포함해 길이 거듭제곱을 추적합니다
이진 덧셈과 뺄셈은 양쪽에 공백을 요구합니다. min과 max는 호환되는 쉼표 나열 식을 받고, clamp는 호환되는 식 세 개를 받으며 경계가 뒤집히면 하한이 이깁니다
지원되는 길이 단위는 pt, 96 dpi 기준 px, pc, in, cm, mm, q, em, rem, vw, vh, vmin, vmax입니다. 십진수와 지수 숫자는 기존 유한 십진 변환을 씁니다
Font-size의 em과 백분율은 감싸는 계산된 폰트 크기를 쓰고, line-height의 em과 백분율, spacing의 em은 상속 전 선언 요소의 최종 캐스케이드 폰트 크기를 씁니다
rem은 계산된 body 폰트 크기를 씁니다. body 자신의 font-size 식은 DefaultStyle.FontSize의 초기 루트 크기를 쓰고, 그 밖의 메트릭은 최종 계산 크기를 씁니다
Viewport 단위는 MediaFeatures의 명시적 width와 height 항목을 씁니다. 이 호스트 크기는 포인트 호환 길이이고, em 또는 rem 호스트 크기는 0일 때 기존 12포인트 폴백과 함께 MediaInitialFontSize를 씁니다
호스트 크기, 해상도, 0이 아닌 초기 미디어 폰트 크기는 기존 0.000001 하한과 1000000 상한을 유지합니다. 정확한 하한 값은 컴파일러 대상 전반에서 일관된 공유 Double 비교를 쓰고, 하한 미만 값은 계속 거부됩니다
vw는 width를, vh는 height를, vmin이나 vmax는 둘 다 요구합니다. 없는 크기는 선언을 인정하지 않으며, 데스크톱, 페이지 크기, 브라우저 뷰포트 추론이 없습니다
Line-height는 단위 없는 상속 계수 또는 포인트 길이로 계산될 수 있습니다. 계산된 음수 수학 높이는 0으로 잘리고, font-size는 기존 양수 인정 범위를, spacing는 부호 있는 포인트 길이를 유지합니다
자간과 단어 간격은 길이 결과를 요구합니다. 기존 bare 0 문법은 계속 쓸 수 있고, 백분율 간격은 이 프로파일에 없습니다
기존 속성별 캐스케이드, important 우선순위, 명시적 상속이 적용됩니다. 지연된 줄과 간격 수학은 이긴 최종 폰트 크기를 쓰고, font shorthand는 균형 잡힌 수학 함수 안의 공백과 나눗셈을 받습니다
무효한 폰트 선언은 인정된 폴백을 유지합니다. 유한하고 유계인 결과로 계산될 수 없는 문법적으로 인정된 이긴 메트릭은 run이 반환되기 전에 EHPDFHeadlessRichTextCodecError를 일으킵니다
변환된 값과 저장된 binary64 산술 결과는 크기가 최대 1e100이어야 하고 길이 거듭제곱은 -64에서 64 사이여야 합니다. 기존 font-size와 메트릭 예산도 계속 적용됩니다
곱셈과 나눗셈은 연산 전에 극한 값을 사전 점검해 가려지지 않은 부동소수점 오버플로가 새지 않게 합니다. 최종 검사는 하위정상 나눗수와 프로파일 경계 값을 포함해 모든 컴파일러 대상에서 같은 Double 경계를 씁니다
수학 스캔은 MaxNodes를 존중하고 재귀 식은 MaxDepth를 존중합니다. 취소는 EHPDFOperationCancelled를 유지하고 부분 디코딩 run을 반환하지 않으며, 새 디코딩 옵션과 재사용 디코딩 옵션은 이후에도 계속 쓸 수 있습니다
계산된 포인트 값은 실제 타입화된 appearance와 정규 RV 직렬화로 흐릅니다. 기본 프로파일 리치 FDF/XFDF 가져오기는 사용자 지정 뷰포트 프로파일을 운반하지 않고 같은 디코더를 씁니다
이 유한 프로파일은 다른 CSS 수학 함수, 숫자 상수, 이스케이프된 수학 함수나 단위 이름, 메트릭 기반 폰트 단위, 논리 또는 동적 뷰포트 단위, custom properties, 일반 CSS 레이아웃을 제공하지 않습니다
산술과 루트 상대 규칙은 CSS Values and Units Level 4의 지원 부분을 따릅니다. 위의 유계 지원 프로파일이 라이브러리의 현재 동작을 정의합니다
네이티브 디코더 · 디코딩 옵션 · 줄 높이 · run 간격 · 폰트 shorthand