MathMLが入ったEPUBを作るのにTexからMathMLの変換がめんどくさかったので、Meryと連携させてみた。
具体的にはMathJax-nodeで変換しているのだけど、Meryで選択した、Texを直接マクロを実行すると選択した部分だけMathMLに書き換えてくれると楽そうだと思った。
実行はNode.jsでやってるが、サンプルコードから書き変えたのはここだけ。
//コマンドライン引数
var input ="";
for(var i = 2;i < process.argv.length; i++){
input = input + process.argv[i] +" "
}
//'E = mc^2'
var input = input.slice( 0, -1 ) ;
var yourMath = input;
node tex2mathml E = mc^2 と入力すると
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block" alttext="E = mc^2 ">
<mi>E</mi>
<mo>=</mo>
<mi>m</mi>
<msup>
<mi>c</mi>
<mn>2</mn>
</msup>
</math>
結果を吐き出す。
あとはMery側の設定
-
コマンドはnode.jsを指定
-
引数はtex2mathml.js $(SelText)
- $(SelText)はエディターて選択したテキストという意味。
- tex2mathml.jsはフルパスで指定している。
- アウトプットバーを使用するにチェック
- 出力を選択範囲と置換
フォルダ名に日本語を入れると動かなかったという失敗。
だいたいやっていることはこんな感じ
meryから選択範囲を取得
引数をnodeに渡す。
node tex2mathml 引数
mathmlを返す
meryの選択範囲に置き換え。
日替わりセール