KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

TexをMathMLに変換するマクロを作ってみた

 

99nyorituryo.hatenablog.com

  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側の設定

f:id:kyukyunyorituryo:20180901204025j:plain

  • コマンドはnode.jsを指定

  • 引数はtex2mathml.js $(SelText)

  • $(SelText)はエディターて選択したテキストという意味。
  • tex2mathml.jsはフルパスで指定している。
  • アウトプットバーを使用するにチェック
  • 出力を選択範囲と置換

 

フォルダ名に日本語を入れると動かなかったという失敗。

github.com

だいたいやっていることはこんな感じ

meryから選択範囲を取得

引数をnodeに渡す。

node tex2mathml 引数

mathmlを返す

meryの選択範囲に置き換え。

itstudio.co

 

 日替わりセール 

たゆたえども沈まず (幻冬舎単行本)

たゆたえども沈まず (幻冬舎単行本)