コンテンツにスキップ

論文図への数式の埋め込み

論文(卒論、arXiv プレプリント、IEEE ジャーナル、ワークショップ原稿)を書いていて、図に 図形typeset された数式 の両方を入れたいことがあります。よくあるやり方は 2〜3 ツール併用 — 作図アプリで図を描き、LaTeX レンダラーで数式を作って、最後に合成する、という流れです。この方法でも優れた図は多く作られていて、トレードオフは「数式が同じファイルから直接編集できなくなる」ことくらい。「添字を 1 つ直して」のようなリビジョンは、レンダラー側にもう一度行く必要があります。

drawtonomy は両者を同じキャンバスに同居させる選択肢の 1 つです。図形と数式は同じベクターファイルに収まり、数式は LaTeX ソースのまま編集可能な状態で保持されます。

align 環境で式番号 (1)〜(4) 付きで描画されたマクスウェル方程式

KaTeX で typeset された数式系(マクスウェル方程式)が drawtonomy キャンバス上に直接配置できる。ブロック全体が編集可能な 1 つのシェイプ — ダブルクリックすれば LaTeX ソースに戻れる。

どのツールもそれぞれの目的でとてもよくできていて、drawtonomy は「キャンバスを 1 枚にして、図形と数式の両方を編集可能なまま保つ」という少し違う制約に合わせて設計されています。

  • PowerPoint / Keynote はスライドや手早い図の定番で、数式エディタも組み込まれていて便利です。LaTeX ソースを後から編集できる形式で残す目的では、別の選択肢が必要になります。
  • Inkscape / Illustrator は優れたベクター編集環境で、最終的な仕上げで使われる論文図もたくさんあります。数式を別の LaTeX レンダラーから取り込む場合、LaTeX ソースは図とは別ファイルで管理することになります。
  • Excalidraw / tldraw / Miro は協調作業に強い優れたホワイトボードです。フォーカスは作図側にあるので、数式は別のレンダラーから画像として貼り込むのが一般的です。
  • TikZ / pgfplots は LaTeX ネイティブで完全に正確な図を作る定番で、特に精密さが必要な場面の決定版です。トレードオフは反復サイクル — 編集ごとに compile が走ります。

drawtonomy はスライドツールと TikZ の中間あたり — 2D ベクターキャンバスに KaTeX 描画を組み込み、LaTeX ソースを保持します。図形と数式を別ツールに分けるワークフローがすでにうまく回っているなら、それで十分。drawtonomy が一番役に立つのは「1 つの編集可能なファイルに両方収めたい」ときです。

  1. 図形を描く。自動運転論文ならレーン・車両・歩行者、制御論文なら矩形+矢印のブロック図、手法概要なら多角形+パス矢印。Math シェイプは drawtonomy のシェイプ群の 1 つなので、好きな組み合わせで使えます。

  2. Math (fx) ツール で数式を配置。プレビューはライブ。複数行のシステムは \begin{align} で式番号を自動付与。

    二次方程式の解の公式をライブプレビューで描画している Math エディタ

    入力するたびに下のプレビューが KaTeX で再描画される — 上半分が LaTeX ソース、下半分がレンダー結果。

  3. 印刷用にスタイル設定。多くのジャーナルはまだグレースケール印刷。数式は黒または暗いグレー、サイズは図の本文に合わせる。サイズスライダーはポスター用に 200 px まで対応。

    赤色 60 px に変更した数式と、Math (LaTeX) アトリビュートパネル

    Color と Size は Math (LaTeX) パネルから変更 — グレースケール印刷向けには paper-safe な黒、ポスター用には大きめサイズを選ぶ。

  4. LaTeX ビルド向けに PDF エクスポートopentype.js\sqrt の根号まで含む全グリフがベクターパスに変換されるので、ファイルは自己完結 — フォント依存なし、pdflatex も文句を言いません。\includegraphics{...} で図にそのまま挿入できます。

  5. .drawtonomy.svg を編集可能ソースとして保管。レビュアーが「\sigma\rho に置き換えて」と言ってきたら、.drawtonomy.svg を drawtonomy で再オープン → 数式をダブルクリック → LaTeX 編集 → PDF 再エクスポート。図形は触らずに済みます。

  • \includegraphics{equation.pdf} が論文用には最も安定。drawtonomy の PDF 出力はパスベースなので、pdflatex / xelatex / lualatex すべてで動きます。
  • SVG + svg パッケージ も動きますが、ビルド機の Inkscape に依存します。ローカルでは安定ですが CI では面倒。ローカルで PDF に変換してチェックインを推奨。
  • EPSlatex + dvips 系の旧ツールチェーン向け。PDF と同じパスベース忠実度。
  • フォント。テキストがパス化されているので、本文フォントに合わせる必要はありません。数式は文書側のフォント設定に関わらず KaTeX 風(Computer Modern 風)になります — 大抵はこれが望む結果です。

このユースケースは「自動運転ドキュメント」配下に置いていますが、Math シェイプは汎用です。同じワークフローが以下にも使えます:

  • 機械学習の手法図(ネットワーク図の隣に損失関数の式)
  • 制御論文(伝達関数ブロックの横に LaTeX 形式の式)
  • 信号処理の図(Fourier ペアの説明図)
  • 物理・化学論文(\ce{} で反応式)
  • 数学論文(定理を typeset して証明図に添える)

ホワイトボードに描けるものなら drawtonomy が持てます。

  • 本文中のインライン数式。LaTeX 原稿に書くべきで、図に入れるものではありません。
  • データ駆動の動的プロットmatplotlib / pgfplots / TikZ を使い続けてください。