ネイティブリッチテキストの有限数値演算
ネイティブ XHTML リッチテキストデコーダは、font-size、フォント略記のサイズとスラッシュ高さ、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 は互換性のある 3 式を取り、境界が逆転している場合は下限が勝ちます
サポートされる長さ単位は pt、96 dpi の px、pc、in、cm、mm、q、em、rem、vw、vh、vmin、vmax です。10 進数と指数表記は既存の有限 10 進変換を使います
font-size の em とパーセントは外側の計算済みフォントサイズを使います。line-height の em・パーセントとスペーシングの em は、継承の前に宣言要素の最終カスケードフォントサイズを使います
rem は body の計算済みフォントサイズを使います。body 自身の font-size 式は DefaultStyle.FontSize の初期ルートサイズを使い、他のメトリクスは最終計算サイズを使います
ビューポート単位は MediaFeatures の明示的な width・height エントリを使います。これらのホスト寸法はポイント互換の長さで、em・rem のホスト寸法は MediaInitialFontSize を使い、ゼロのときは既存の 12 ポイントフォールバックを使います
ホスト寸法、解像度、ゼロでない初期メディアフォントサイズは、既存の下限 0.000001 と上限 1000000 を保持します。下限ちょうどの値は、コンパイラターゲット全体で一貫する共有 Double 比較を使い、下限未満の値は引き続き拒否されます
vw は width を、vh は height を、vmin と vmax は両方を要求します。欠落した寸法は宣言を不許可のままにし、デスクトップ、ページサイズ、ブラウザビューポートの推測はありません
line-height は単位なしの継承係数またはポイント長に計算され得ます。計算された負の高さはゼロにクランプされ、font-size は既存の正の許可範囲を、スペーシングは符号付きポイント長を保持します
字間と語間は長さの結果を要求します。既存の裸のゼロ構文は引き続き利用可能で、パーセントスペーシングはこのプロファイルの一部ではありません
既存のプロパティ別カスケード、important 優先、明示的継承が適用されます。遅延された行・スペーシング演算は勝った最終フォントサイズを使い、フォント略記はバランスの取れた数式関数内の空白と除算を受け付けます
無効なフォント宣言は許可されたフォールバックを保持します。有限で上限付きの結果に計算できない、構文的に許可された勝ったメトリクスは、run を返す前に EHPDFHeadlessRichTextCodecError を送出します
変換された値と格納された binary64 演算結果は、大きさが最大 1e100 で、長さの累乗は -64〜64 でなければなりません。既存の font-size とメトリクス予算は引き続き適用されます
乗算と除算は演算前に極端な値をプリフライトし、マスクされない浮動小数点オーバーフローを防ぎます。最終チェックは、非正規化除数やプロファイル境界の値を含め、すべてのコンパイラターゲットで同じ Double 上限を使います
数式スキャンは MaxNodes を、再帰式は MaxDepth を尊重します。キャンセルは EHPDFOperationCancelled を保持し、部分的にデコードされた run を返しません。新規・再利用のデコードオプションはその後も利用可能です
計算されたポイント値は、実際の型付き外観と正準 RV シリアライズに供給されます。デフォルトプロファイルのリッチ FDF/XFDF インポートは、カスタムビューポートプロファイルを転送せずに同じデコーダを使います
この有限プロファイルは、その他の CSS 数式関数、数値定数、エスケープされた関数・単位名、メトリクス由来のフォント単位、論理・動的ビューポート単位、カスタムプロパティ、一般的な CSS レイアウトは提供しません
算術とルート相対の規則は CSS Values and Units Level 4 のサポート部分に従います。上記の上限付きサポートプロファイルが、ライブラリの現在の動作を定義します
ネイティブデコーダ · デコードオプション · 行の高さ · run スペーシング · フォント略記