LoginSignup
8

超便利。Markdownでグラフと数式の入った文書を簡単に書く(VSCode + gnuplot/matplotlib)。

Last updated at Posted at 2020-06-12

はじめに

仕事や研究上,数式やグラフの入った文書を書くことの多い人向け。VSCodeエディタでMarkdown-review-enhancedを使うと、文書・数式の記述とグラフ描画まで、1つのMarkdownファイル内で全て完結する。

自分用の計算メモはもちろん、ちょっとしたレポートや技術資料ならこれで十分。

2023.5追記:
当初使用していたAtomエディタが2022年で開発中止になったため、VSCodeを用いる方法に変更。

image.png こんな感じにリアルタイムに数式、グラフを書いていくことができる。グラフ描画はgnuplotかmatplotlibを使う。描画スクリプトは非表示にすることもできる。

それなりのコードで数値計算をして、インタラクティブにプロットしたいならJupyter notebookでコーディングしてmatplotlib、あるいはHydrogenを使うのがよいと思う。
さくさくMarkdown文書を書きながら、ちょっとしたプロットをしたい場合にはMarkdown+gnuplotがオススメ。

環境

MacOS 10.15 Catalina + VSCode 1.77.3 (Universal) で動作確認。

Gnuplotのインストール

以下を参考に、Homebrewを使ってinstallしておく。
Mac OS (Catalina) にHomebrewでgnuplot5をインストール

gnuplotではなくMatplotlibでグラフを書きたい場合はpython環境をinstallしておく。
関数プロットはMatplotlibよりgnuplotの方が便利な気がする。

Visual Studio Code (VSCode)エディタのセットアップ(~5分)

Atomは2022年で開発中止になったので、VSCodeをつかいます。

VSCodeのインストール

https://code.visualstudio.com/download から最新版のVSCodeをインストールする。

markdown-preview-enhancedを入れる。

VSCodeを起動し、メニューのView>Extensions (または左バーのExtensionsアイコン)から,markdown-preview-enhancedを検索してInstallする。

230602-01.png

Packageの設定

メニューのCode>Preference>Settings (または左バーの設定アイコン)タブを開き,markdown preview enhancedの設定項目からEnable Script Executionを有効にする。これによりスクリプトの実行が可能になる。
230602-02.png

以上で設定は完了。

書き方

Markdown文書の書き方については、Markdown記法 サンプル集などを参考に。
Atomエディタのウィンドウ右下の文書タイプがPlain textになっていたら、これをGitHub Markdownにしておこう。WindowメニューからMarkdown Preview Enhanced > Toggle preview するとウィンドウ右側にリアルタイムのプレビュー画面が表示される。

数式を書くには

$\alpha_a + \beta^{2x} = \frac{\sqrt{2}}{t}$

のようにtex記法を使えば、
$\alpha_a + \beta^{2x} = \frac{\sqrt{2}}{t}$
のように出力される。

グラフはgnuplotの場合、

~~~gnuplot {cmd=true output="html"}
set terminal svg
plot sin(x)
~~~

のようにスクリプトを入力するとグラフが出力される。編集中にControl + Shift + Enterするとスクリプトが実行されてグラフが更新される。プレビューにスクリプトを出したくない(出力グラフのみ表示)ときは、オプションにhide=trueを追加する。

matplotlibを使う場合には

```python {cmd=true matplotlib=true}
import matplotlib.pyplot as plt
plt.plot([1,2,3, 4])
plt.show() # show figure   
```

のように書く。

あとはPDFなりhtmlなりで書き出してやればよい。例えばこんな感じのが、たった数分で書けてしまう。後から修正も非常に簡単。
↓↓↓↓↓↓↓↓↓↓
test.png

まとめ

文書、数式、グラフがMarkdownファイル内で完結するので、ちょっとした資料やレポート作成に便利。後になってプロットを再利用したいときに、グラフの元ファイルが行方不明ということにもならない。A4用紙へのプリントアウトを想定する場合は、少しCSSを調整した方が見栄えがよいと思う。

matplotlibでlatex表記を使うとレイアウトが崩れることがあった。原因は調査中。

latexエラーの回避や、印刷向けCSSなどの情報があればぜひコメントください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8