How to create math SVG images by Mathjax-node(Node.js)
How to create math SVG images by Mathjax-node(Node.js)
数式をSVG画像化するメモ.
環境
-
Wubdiws10
-
Node.js v6.10.3
-
npm 4.5.0
-
Mathjax-nodeとは
サーバサイド(Node.js)で使えるMathjax. mathjaxで書いた数式のMathMLコードやSVGコードを取得できる.
インストール
npmからインストールできる.
npm install -g mathjax-node
数式出力
オプションを指定することで,mathjaxの数式をコードへ出力できる.
SVGへ出力
svgオプションを true
にする.
// a simple TeX-input example
var fs = require("fs"); // ファイル出力用
var mjAPI = require("mathjax-node");
mjAPI.config({
MathJax: {
// traditional MathJax configuration
}
});
mjAPI.start();
var yourMath = 'E = mc2'; // 数式
mjAPI.typeset({
math: yourMath,
format: "TeX", // "inline-TeX", "MathML"
svg: true,
}, function (data) {
if (!data.errors) {
console.log(data.svg); // 標準出力
fs.writeFileSync("math.svg", data.svg); // ファイル出力
}
});
</code></pre>
</section>
<section id="sec-outputmath-mml">
<h3>MathMLへ出力</h3>
<p>ちなみに,MathMLコードは,<code>mml</code>オプションを<code>true</code>にすることで出力できる.</p>
<pre><code>
// a simple TeX-input example
var mjAPI = require("mathjax-node");
mjAPI.config({
MathJax: {
// traditional MathJax configuration
}
});
mjAPI.start();
var yourMath = 'E = mc2';
mjAPI.typeset({
math: yourMath,
format: "TeX", // "inline-TeX", "MathML"
mml: true,
}, function (data) {
if (!data.errors) {console.log(data.mml)}
// will produce:
// < math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
// <mi>E </mi>
// <mo>=</mo>
// <mi>m</mi>
// <msup>
// <mi>c</mi>
// <mn>2</mn>
// </msup>
//
});
</code></pre>
</section>
</section>
<aside id="aside-quote_link">
<h2>参考リンク</h2>
<ul>
<li>
<p><iframe class="embed-card embed-webcard" frameborder="0" scrolling="no" src="//hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Fmathjax%2FMathJax-node" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" title="mathjax/MathJax-node"></iframe><cite class="hatena-citation"><a href="https://github.com/mathjax/MathJax-node">github.com</a></cite></p>
</li>
</ul>
</aside>