システムとモデリング

modelica, Julia, Design Structure Matrix, SysML, 他モデリング全般について。

Weave.jlを使ってJuliaのノートブックを作成する

今回はJuliaのパッケージ"Weave.jl"を使ってjupyter notebookのように文章とプログラミングの演算結果を同時に掲載できるノートブックを作っていきます。 "Weave.jl"と数値計算に強いJuliaを使えば簡単に技術資料を作ることができそうです。

Weave.jl

github

github.com

ドキュメント

weavejl.mpastell.com

レポートの作成

レポートとして下記ファイルを出力します。 拡張子は.jmdとなります。おそらくRMarkdownの拡張子が.rmdなのでそこからjmdにしたものと思われます。

# はじめに
weave.jlのテストファイルです。
コードは以下のように書けます。
~~~julia
using Plots
x = 1:10
y = x.^2
plot(x,y)
~~~

## Markdownのように書けます.
* こんな風に

数式も書けます
$$
y = x^3
$$

以上。

書き方はRMarkdownに似ています。プログラムはRMarkdownと同様にコードチャンクの中に書く形になります。 仮に上のプログラムをweave_test.jmdという名前で保存します。このときの保存パスはjuliaのカレントディレクトリとします。 カレントディレクトリの場所はjuliaで

pwd()

と入力すればわかります。

ファイルの出力

HTMLの出力

weave_test.jmdのパスと同じ場所に下記weave_test_html.jlを作成し、実行します。

using Plots
using Weave
weave("weave_test.jmd",doctype = "pandoc2html", out_path=:doc)

これによりweave_test.jmdと同じ場所にweave_test.htmlが作成されます。

f:id:Otepipi:20190330221113p:plain

注記)この方法でhtmlを出力するにはpandoc2が必要になります。 doctype = "md2html"にすれば必要ないとドキュメントには書いてありますが、私の環境では成功しませんでした。

Markdownの出力

HTMLと同じように以下で実行すれば.mdのファイルが生成されます。

using Plots
using Weave
weave("weave_test.jmd",doctype = "github", out_path=:doc)

今回はここまでにします。