export 関数(LINK)がついに livescript から markdown (Jupyter® notebook も)への変換が公式サポートされるようになりました。Doc は英語で表示しないと R2023b (最新版)の内容が表示されないので要注意です。
正確な仕様はドキュメントを確認するとしても、ちょっとややこしいので markdown 変換に絞って使い方例をまとめます。
- 使用環境:R2023b
これまでは自作の livescript2markdown 関数を使用していましたが、これを機に export 関数を使うようにしたいと思います。
参考:【MATLAB】ライブスクリプトの Markdown 変換で楽して Qiita 投稿
変換後の markdown を確認するために画像やら数式を入れておきます。
surf(peaks);
export("doc.mlx","doc_ver1.md");
結果はこちら:doc_ver1.md
ファイルを見ると数式は
$$ \begin{array}{rl} \frac{\partial u}{\partial t}+u\cdot \nabla u & =-\nabla p+\frac{1}{Re}\nabla^2 u\\ \nabla \cdot u & =0 \end{array} $$
そして画像は
こんな感じ。画像が埋め込まれちゃってますね。画像等のファイルを出さずに markdown ファイル1つで済む点はメリットですが、画像ファイルも欲しい(個別に確認したい)場合は不便ですね。
ちなみに、
export("myscript.mlx",Format="markdown")
livescript 名と同じ markdown ファイルですとこんな実行方法でもOK.
画像ファイルを別途作成させる場合はこれ。EmbedImages
オプションを設定します。
export("doc.mlx","doc_ver2.md",EmbedImages=false);
結果はこちら:doc_ver2.md
今度は
と、画像ファイルを参照しています。
画像ファイルは (markdown ファイル名)_media のフォルダ内に保存されますね。今回のケースですと doc_ver2_media です。
ちなみに画像ファイル形式は FigureFormat から選べますが、Run オプションを true にし markdown 変換前に一度 livescript を実行させるようにしないといけない点に要注意。
export("doc.mlx","doc.md",EmbedImages=false, FigureFormat='jpeg', Run=true);
選べる選択肢は以下の通り
FigureFormat — Figure format
"png" | "jpeg" | "bmp" | "svg" | "eps" | "pdf"
少し前まで GitHub がそうでしたが、 latex がレンダリングされない環境だと数式は画像にして表示しましょう。RenderLaTeXOnline オプションです。"svg" | "png" | "jpeg" から選べますが、ここでは "svg" で行ってみます。
export("doc.mlx","doc_ver3.md",RenderLaTeXOnline='svg');
結果はこちら:doc_ver3.md
数式部分は
こんな感じで latex.codecogs.com のサービスを利用しています。
便利なのですがダークモードで表示すると見えない、見にくいなどの課題がある点は要注意です。
コードの出力結果を含めるかどうか。デフォルトでは true になってます。
変換前に一度コードを実行するかどうか。デフォルトでは false になってます。まだ実行していない livescript で出力が欲しい場合は実行した方がいいですね。
コードを隠しての出力。基本的に livescript 側の設定(表示・非表示)に従いますが、このオプションで指定可能。
細かい色の設定(タイトル)や挿入した画像のサイズなどしっかり markdown にも反映させたい場合に必要。ただ表示側の環境に依存します。
画像の解像度設定ですね。
以上!基本的なところだけですが簡単に紹介いたしました。
export("doc.mlx","README.md",EmbedImages=false);
でこの repo の README としておきます。
個人的には、【MATLAB】ライブスクリプトの Markdown 変換で楽して Qiita 投稿 で紹介した関数・コードが製品に(開発チームの大幅な修正・慎重な検証ののち)採用されたということで思い入れの強い関数 export でした。