動機
markdownにoctaveで作った簡単な図を突っ込みたくて、どうせならコードも1つのmdファイルで管理したかったのでやってみた。結局直接埋め込めてはいないけど、個人的には今の状態のほうが使い勝手がよく満足。
もっといい方法があるかもしれないけど、とりあえずメモ。
動作環境
windows10 home
VSCode 1.65.2
Markdown Preview Enhanced v0.6.2
GNU octave-6.4.0-w64
準備
octave-cliの準備
octaveを公式サイトからダウンロードしてインストール。
octave-cli.exeのある場所をユーザー環境変数のPathに追加。多分下記のあたりにある。
C:\Program Files\GNU Octave\Octave-6.4.0\mingw64\bin
コマンドプロンプト等でoctave-cli
と叩いてoctave-cliが起動することをチェック。
vscodeの準備
vscodeを公式サイトからダウンロードしてインストール。拡張機能でMarkdownPreviewEnhancedをインストール。
グラフを埋め込む
やり方
MarkdownPreviewEnhancedでは、pythonとかgnuplotとかならダイレクトに図を埋め込めるけど、octaveではそれができなかった。
なので、画像をいったん保存し、改めてその画像を読むことにした。
こんな感じに書く。
``` matlab {cmd=octave-cli output="html" hide=true}
figure;
plot3(1, 3, -2, 'o')
axis([-3 3, -3, 3, -3, 3], 'equal')
grid on;
xlabel('x')
ylabel('y')
zlabel('z')
saveas(gcf, 'fig01.png')
```
<img src=fig01.png width=400>

(言語の名前はmatlabを指定すると、matlabのシンタックスで色がつくのでうれしい。hide=true
にすると見えなくなるけど、とりあえずそれを切っておくと書いているときにミスに気付きやすくなる)
コードを実行したあとは、ctrl
+ k
-> v
などでプレビューを更新することで、画像を読み込みなおせる。
注意点
octave-cliのファイルの文字コードの問題があって、pathなどに日本語があるとうまくいかないことがある。
日本語は使わないようにするのが無難。
感想
便利。matlabに慣れているため、octaveで図をかけるのがうれしい。