数学と証明¶
関係を調べやすくする数式を使う。記号は使う前に定義し、必要な単位を示す。数式は説明を支え、置き換えない。
インライン数式と独立した数式¶
短い式には math ロール、独立した式には math ディレクティブを使う。両形式が理解する共通の LaTeX 数式サブセットで書く。
A side of length :math:`s` encloses area :math:`s^2`.
.. math::
:label: area-square
A = s^2
The relation is :eq:`area-square`.
一辺の長さが \(s\) の正方形の面積は \(s^2\) である。
関係式は (1)。ラベル付きの式には安定したターゲットを与える。HTML は MathJax 記法を渡し、PDF は対応する LaTeX サブセットを Typst 数式へ変換する。未対応命令は報告し、任意の LaTeX パッケージは実行しない。
小さな証明¶
計上済みのバイト数を \(U\)、上限を \(B\)、要求量を \(n\) とする。全て非負で \(U \le B\) と仮定する。
受け入れ規則。 次の条件が成り立つ場合に限り、要求を受け入れる。
命題。 要求を受け入れても \(U + n \le B\) が保たれる。
証明。 (2) の両辺に \(U\) を加えると \(U+n \le B\)。実装は減算形を検査し、整数をあふれさせ得る \(U+n\) を先に計算しない。証明と演算順序は一致する。
境界。 対象は計上したホスト領域で、別の Typst コンパイラー内部は制限しない。証明は明記した範囲内でのみ有効だ。
HTML の設定¶
これらのプロジェクトは MathJax 3.2.2 と SVG フォントデータを同梱し、数式のあるページだけで読み込む。ビルド後はオフラインで読め、図のスクリプトや Web フォントサービスは不要。
自分のプロジェクトでは、既定で CDN の MathJax を使う。ローカルのコピーを配信するには、_static に置いて次を設定する。
html_static_path = ["_static"]
mathjax_path = "_static/tex-svg-full.js"
Web 数式の組版には JavaScript が必要で、無効時はソースが見える。PDF はブラウザーの JavaScript を必要としない。MathJax コンポーネント契約 を参照。