text-in-math
text-in-math: math-class -> (context -> inline-boxes) -> math
数式中にインラインボックスを埋め込むことができる プリミティヴ です.
LaTeX でいうところの \text{} を実現するのに使えます.
また,第2引数では「テキスト処理文脈 を受け取り inline-boxes を受け取る関数」を指定できるため,単にインラインボックスを埋め込むだけでなく
数式中でテキスト処理文脈を局所的にいじりたいとき
テキスト処理文脈を使わないと取得できない情報を取得したいとき
にも必要となります.
数式中でテキスト処理文脈をいじりたいとき
たとえば以下は,数式中でフォントサイズを2倍にするコマンドを定義する例です:
code:satysfi
let-math \twice m =
text-in-math MathOrd (fun ctx -> (
let ctx = ctx |> set-font-size ((get-font-size ctx) *' 2.0) in
embed-math ctx m
))
テキスト処理文脈を使わないと取得できない情報を取得したいとき
たとえば特定の数式の幅,高さ,深さなどの情報を取得したい場合, get-natural-metrics を使うためには一度 embed-math で数式を inline-boxes 型に embed する必要がありますが,そのときにテキスト処理文脈が必要となります.
重ね打ちされた数式を書きたいときなどに使えるテクニック...かもしれませんね.