Microsoft Officeで数式を書くのに慣れてTeX形式で入力するのが苦痛になって来たので、変換プログラムを作りました。Windows専用です。
- mml2tex.fsx [Raw形式で表示] → 保存(UTF-8)
【注】自分の必要とする範囲しか実装していません。変換部は200行程度で不足があればその都度手直しすることを想定しているため、ソースのみの配布とします。
実行方法
以下の2つをインストールします。
F#スクリプトは直接実行できるため、Visual Studioやビルド作業は不要です。mml2tex.fsx をダブルクリックすると、どのアプリで開くか選択肢が出て来るので、以下にある fsi.exe を指定すれば起動します。
- (64bit OS)
C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\fsi.exe
- (32bit OS)
C:\Program Files\Microsoft SDKs\F#\4.0\Framework\v4.0\fsi.exe
使い方
Officeで数式部分だけを選択してコピーします。ExcelやPowerPointでは行末の改行が入らないよう注意してください(Wordでは問題ありません)。このプログラムの画面上部の [Convert from Clipboard] ボタンを押すと変換されます。動作イメージは以下のツイートを参照してください。
実装を進めて、積分や注釈に対応した。私が必要な範囲はほぼカバーできたはず。変換部のコードは200行程度なので、必要に応じて修正するのもそれほど難しくないはず。
— 七誌 (@7shi) 2016年6月24日
【例】変分法で部分積分して表面項を消す pic.twitter.com/tpdXcAeyIs
オプションとして、MimeTeXによるプレビュー機能を使用するにはMimeTeX.dllが必要です。以下から入手してください。
サンプル
サンプルのWordファイルです。
これをTeXに変換して [tex:...]
の中に記述したものを示します。デフォルトではMimeTeX向けのコードを出力しますが、はてなブログはMathJaxを使っているため、変換時に右上のMathJaxにチェックを入れてください。(積分などの大型記号で挙動が異なるため)
【注】Markdown記法で数式が崩れるのを防ぐため <div>
タグの中に記述しています。詳細は以下の記事を参照してください。
関連ツイート
【注】以下は開発者向けの情報です。今回のツールを使用するのには不要です。
OfficeからMathMLを取得する方法です。
【MS Officeの数式からMathMLを取得する方法】
— 七誌 (@7shi) 2017年8月19日
数式の中にキャレット(入力位置を示すカーソル)がある状態で、リボンから数式ツールの「デザイン」を選択して、ツールの横の小さいボタンをクリックします。 pic.twitter.com/bnQthAMNxk
開発着手時のツイートです。
Officeの数式エディタに慣れ過ぎてTeXで書くのが億劫になった。OfficeからMathMLが取り出せるので、後々自前で数式処理することも視野に、トランスレータを試作した。 https://t.co/8rIaHTQZ1r pic.twitter.com/NgHP1XBug7
— 七誌 (@7shi) 2016年6月21日
開発中はMimeTeXで動作確認していましたが、MathJaxとは癖が違うため細かい部分で苦労しました。