はしくれエンジニアもどきのメモ

情報系技術・哲学・デザインなどの勉強メモ・備忘録です。

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コードを取得できる.

github.com

インストール

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: // &lt; math xmlns="http://www.w3.org/1998/Math/MathML" display="block"&gt; // &lt;mi&gt;E &lt;/mi&gt; // &lt;mo&gt;=&lt;/mo&gt; // &lt;mi&gt;m&lt;/mi&gt; // &lt;msup&gt; // &lt;mi&gt;c&lt;/mi&gt; // &lt;mn&gt;2&lt;/mn&gt; // &lt;/msup&gt; // }); </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>