|
typeset 0.1.0
縦書き・横書きの日本語組版ライブラリ(JLReq 水準、ラスタ / PDF / SVG)
|
obj — 外部生成オブジェクト(数式・グラフ・図など)の差し込み口 [詳解]
クラス | |
| class | ObjectRegistry |
| struct | ObjectRequest |
| struct | ObjectResult |
| struct | SvgImportOptions |
型定義 | |
| using | ObjectHandler = std::function< ObjectResult(const ObjectRequest &)> |
関数 | |
| std::string | requestToJson (const ObjectRequest &req) |
| 要求を JSON にする(外部コマンドの入力。UTF-8) | |
| ObjectResult | makeResult (Size size, Pt baseline, std::vector< dl::Item > items) |
| 表示リスト要素を ObjectResult に詰める補助 | |
| bool | importSvg (const std::string &svg, const SvgImportOptions &opts, ObjectResult &out) |
obj — 外部生成オブジェクト(数式・グラフ・図など)の差し込み口
obj/svg_import — SVG のサブセットを表示リストへ
本文側は「ハンドラ名+ソース文字列+パラメータ」だけを書く。組版時に FlowLayouter が 登録済みのハンドラを呼び、返ってきた箱の大きさとベースラインで配置し、描画命令 (表示リストの要素)をそのまま出力へ流す。本体は数式や図の知識を持たない。
ハンドラは 2 通り:
command <request.json> の標準出力(SVG)を 読み込む(obj/svg_import)。メトリクスは SVG の width/height と、あれば <!-- typeset baseline="12.3" --> のコメント(上端からベースラインまで、pt)結果は (ハンドラ, ソース, パラメータ, サイズ, 行内か) でキャッシュする。目次・参照の多パスで 同じ式を何度も組むため。
数式レンダラ(MathJax / dvisvgm / Typst)やグラフ(matplotlib)が出す SVG を受けるための 読み込み。対応: svg(width/height/viewBox) / g(transform, 塗り・線の継承) / path(d 全コマンド、 弧は 3 次ベジェへ) / rect / circle / ellipse / line / polyline / polygon / defs + use(href) / fill・stroke・stroke-width・opacity・fill-rule(属性と style=)。text・画像・クリップ・グラデーションは無視する。
大きさ: width/height(単位 px = 0.75pt, pt, mm, cm, in, em, ex)を pt に。無ければ viewBox。 ベースライン: <!-- typeset baseline="12.3" -->(上端から pt)、または style の vertical-align: -1.2ex から(MathJax)。
| using typeset::obj::ObjectHandler = typedef std::function<ObjectResult(const ObjectRequest&)> |
object.hpp の 55 行目に定義があります。
| std::string typeset::obj::requestToJson | ( | const ObjectRequest & | req | ) |
要求を JSON にする(外部コマンドの入力。UTF-8)
| ObjectResult typeset::obj::makeResult | ( | Size | size, |
| Pt | baseline, | ||
| std::vector< dl::Item > | items | ||
| ) |
表示リスト要素を ObjectResult に詰める補助
| bool typeset::obj::importSvg | ( | const std::string & | svg, |
| const SvgImportOptions & | opts, | ||
| ObjectResult & | out | ||
| ) |