3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jupyter Book

Last updated at Posted at 2023-08-10

1 Jupyter Book とは

image.png

Jupyter Book とは、さまざまな形式のドキュメント(HTML, PDF, ePUB など)を作成する Sphinx というツールと、MyST Markdown というサイエンスのドキュメントに適したマークダウンを融合させたツールです。一つのサイトページは一つの markdown ファイルを元に作られ、それらを _toc.yml ファイルにまとめて、Jupyter Book を構成します。

markdown だけでなく ipynb も一つのページとして使うことが可能で、Jupyter Book の作成時に ipynb を実行し結果も挿入することができます。(さらに、ipynb であれば、_config.yml で Google colaboratory を有効にすることによって、Jupyter Book の同じページをすぐに Google colaboratory を開いて実行することが可能です。)

jb-scipy.png

基本的なマークダウンと同様に数式やソースコードが書けるのはもちろん、豊富なノート記法(qiita でいう:::note ~ :::、admonition や directive と呼ばれます)やドロップダウンタブコンテンツ相互参照、などを使うことができます。詳しくは、こちらを参照ください。

2 数式

Jupyter Book では、Latex がとても扱いやすいです。というのも、Sphinx の設定で MathJax3 を使うことができ、さまざまな Latex package をロードしたり、マクロを設定することができます。

例えば、physics package であれば、_config.yml に以下を追加することで使用可能になります。

sphinx:
  config:
    mathjax_path            : https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
    mathjax3_config:
      loader:
        load                : ['[tex]/physics']
      tex:
        packages            : { '[+]': ['physics'] }
        macros:
          "N": "\\mathbb{N}"
          "floor": ["\\lfloor#1\\rfloor", 1]
          "bmat" : ["\\left[\\begin{array}"]
          "emat" : ["\\end{array}\\right]"]

デフォルトでは、現在 MathJax バージョン 2 が使用されています。数式を頻繁に使用する場合は、バージョン 3 を使用してみてください。ロード速度が 60〜80% 倍向上すると言われています。

このページにphysics package の例を挙げておいたのでどのようなコマンドが使えるのか見てください。

physics.png

3 Jupyter Book の作成

Jupyter Book の基本的な構成要素は、プロジェクトの初期化によって簡単に作ることができ、GitHub pages を使って簡単に公開もできます。

3.1 ディレクトリを作成する

Jupyter Book をゼロから作成してみましょう。まず、以下のディレクトリ構造を作成し、venv(仮想環境)をアクティベートします。

./jupyter-book
	└── test-book
	    ├── venv
$ mkdir -p ./jupyter-book/test-book
$ cd ./jupyter-book/test-book

$ python3 -m venv venv
$ source venv/bin/activate

3.2 jupyter-book をインストールする

(venv)$ pip install -U jupyter-book

3.3 Jupyter Book の骨組みを作る

以下のコマンドで、Jupyter Book の骨組みを作成します。この時、_config.yml_toc.tml、説明用の初期ファイルなどがいくつか生成されます。

(venv)$ jb create test-book
(venv)$ cd test-book
(venv)$ jb build .
~/jupyter-book
	└── test-book
	    ├── venv
	    └── test-book
                ├── _condig.yml
                ├── _toc.yml
                ├── ...

無事、ビルドが完了すると、terminal に次のような HTML のファイル URL: file:///Users/<Username>/path/to/jupyterbook/test-book/test-book/_build/html/index.html が出力されるので、それをブラウザに貼り付けて、確認してみてください。

jb は jupyter-book の略です。

jupyter-book.png

3.4 公開する

作成した Jupyter Book を公開するために、まず Github で test-book 専用のリポジトリをご自身で作成してください。

~/jupyter-book
	└── test-book
	    ├── venv
	    └── test-book
                ├── _condig.yml
                ├── _toc.yml
                ├── ...
                └── .git

リポジトリを作成したら、ghp-import という Python ライブラリをインストールします。

(venv)$ pip install ghp-import

あとは、次のコマンドを実行すれば、公開の準備は終わりです。

(venv)$ ghp-import -n -p -f _build/html

公開されたウェブサイトは https://<Username>.github.io/test-book/intro.html で確認できます。

サイトが公開されるまでに数分かかる場合があります。

3.5 更新する

ソースコードを変更した後、以下のコマンドでウェブサイトを更新できます。

(venv)$ jb build --all test-book/

(venv)$ git add .
(venv)$ git commit -m "comment"
(venv)$ git push origin main

(venv)$ ghp-import -n -p -f _build/html

5 その他

5.1

4 終わり

あとは、ドキュメントを参考にして、ご自分で色々な機能を試してみてください。

3
2
0

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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?