読者です 読者をやめる 読者になる 読者になる

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

情報・Web系技術の勉強メモ・備忘録です。

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 = mc^2'; // 数式

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); // ファイル出力
  }
});

MathMLへ出力

ちなみに,MathMLコードは,mmlオプションをtrueにすることで出力できる.


// a simple TeX-input example
var mjAPI = require("mathjax-node");
mjAPI.config({
MathJax: {
// traditional MathJax configuration
}
});
mjAPI.start();

var yourMath = 'E = mc^2';

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>
// 
});