org-modeでLaTexの数式をSVGに変換する

2020年2月5日水曜日

org-mode

t f B! P L
org-modeでLatexの数式を含む文章は、HTML変換でMathJaxとして出力されるので、ウェブブラウザでも問題なく数式が表示されます。

通常のHTML変換

例えば次のorgファイルは、

#+TITLE: ドキュメントサンプル
#+AUTHOR: 磯野波平
#+OPTIONS: toc:nil
#+OPTIONS: \n:t
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/org_mode.css" />

* 数式のSVG化
数式を表示する。
$\overline{A + B} = \overline{A} \bullet \overline{B}$
HTML出力(Ctrl-c Ctrl-e h o)で次のHTMLに変換されます。

<pre class="prettyprint"><code>
<div class="outline-2" id="outline-container-org7a315c5">
<h2 id="org7a315c5">
<span class="section-number-2">2</span> 数式のSVG化</h2>
<div class="outline-text-2" id="text-2">
数式を表示する。
\(\overline{A + B} = \overline{A} \bullet \overline{B}\)
</div>
</div>
HTMLは、ウェブブラウザで次のように表示されます。(確認したemacsのバージョンは26.3、org-modeのバージョンは9.1.9です。)
ブラウザ表示
しかし、諸事情でMathJaxが使えない環境の場合は、何らかの方法でLaTeXの数式を画像に変換する必要があります。このような時は、#+OPTIONS: tex:dvisvgmをヘッダ部分に記述すると、自動的にSVGに変換してくれます。また、#+OPTIONS: tex:dvipngと記述すると、自動的にpngに変換してくれます。Windowsでdvisvgmやdvipngを利用するには、texliveをインストールする必要があります。

LaTexをSVG変換

#+OPTIONS: tex:dvisvgmを追加した次のorgファイルは、

#+TITLE: ドキュメントサンプル
#+AUTHOR: 磯野波平
#+OPTIONS: toc:nil
#+OPTIONS: \n:t
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/org_mode.css" />
#+OPTIONS: tex:dvisvgm

* 数式のSVG化
数式を表示する。
$\overline{A + B} = \overline{A} \bullet \overline{B}$
HTML出力(Ctrl-c Ctrl-e h o)で次のHTMLに変換されます。

<div id="outline-container-org50e2d0d" class="outline-2">
<h2 id="org50e2d0d"><span class="section-number-2">1</span> 数式のSVG化</h2>
<div class="outline-text-2" id="text-1">
<p>
数式を表示する。<br />
<object type="image/svg+xml" data="ltximg/logic_short_834cc0db00f904ea6b4c3f0cc1c3c52b4e8de9eb.svg" class="org-svg">
Sorry, your browser does not support SVG.</object><br />
</p>
</div>
</div> 
ltximgというサブディレクトリの中に、数式に対応するSVGが生成されています。HTMLは、ウェブブラウザで次のように表示されます。
ブラウザ表示

このブログを検索

ブログアーカイブ

QooQ