A1. Jupyter セッションの記録から pdf ファイルを作る方法

Jupyter は大変便利で,プログラミング & 計算をすすめるだけでなく,Markdown 記法 などでテキスト,数式等も書き込めるため,Jupyter 一つでレポートやプレゼンテーションファイルを作ったりもできる.

そこで,そうした用途の際に「最後に pdf 形式にしたい」というニーズが出てくるわけだが,これについてうまくできない人が多いようなので解説しておこう.

方法1(おすすめしない): pdf ファイルを直接ダウンロード.

具体的には下記の方法だ.うまくいけば簡単な方法だが,うまくいかないケース(サーバをそこまで作り込んでいない)が多いし,また,一見うまくいっていても日本語が含まれるとおかしくなるなどのケースも多い.あまり期待できない方法だ.

  1. jupyter上で,FileDownload asPDF via ... などとして jupyterセッションを pdf ファイルとしてダウンロードする.
    (JupyterHubだと FileSave and Export Notebook AsPDF などが該当する)

方法2(まあ悪くない): html ファイルをダウンロードして pdf へ変換.

htmlファイルとしてセッションファイルをダウンロードし,これを web browser で表示 & pdf へ変換,という流れだ. html ファイルへの変換時に(特にグラフが)おかしくなることがあるのでその場合はこの方法はやめておくのが吉だ. うまくいく場合は,とくに新しいソフト等が不要で気楽な方法だ. 具体的には以下のようになる.

  1. jupyter上で,FileDownload asHTML(.html) などとして jupyterセッションを pdf ファイルとしてダウンロードする.
    (JupyterHubだと FileSave and Export Notebook AsHTML などが該当する)
  2. ダウンロードしたこの html ファイルを web browser にドラッグ&ドロップするなどして表示する.
  3. その web browser で 印刷pdfに保存 などとして pdf に変換する.

方法3(おすすめ): ipynbファイル(jupyterのファイルそのもの)をダウンロードして pdf へ変換.

jupyter ファイルそのものである ipynb ファイルをダウンロードして,それをなんとか表示 & pdf へ変換という流れだ. この方法には

  • ipynb ファイルは jupyter セッションそのものの記録なので,このファイルを保存しておけば(他の jupyter 環境でも)続きができる.つまりバックアップになるのだ.

という利点もあるので,おすすめだ.

さて,具体的にはこの方法は以下のようになる.

  1. jupyter上で,FileDownload asNotebook(.ipynb) などとして jupyterセッションを pdf ファイルとしてダウンロードする.
    (JupyterHubだと FileDownload などが該当する)
  2. ipynb ファイルのビューアー(すぐ下を見よ)を使ってダウンロードしたこのファイルを表示 & pdf として印刷,などする.

Notebook ファイル(拡張子が ipynb のファイル)ビューアー

Notebook ファイル(拡張子が ipynb のファイル)を表示するための方法はたくさんあって,好きなものを選べば良い. 少し紹介しておこう.

  • (どのOSでも使えて,インストールも簡単.おすすめ) nbviewer.js
    nbviewer.js github master files をダウンロード & 解凍・展開し,出てくる viewer.html と lib ディレクトリを同じ場所に置いておく(他のファイルはなくても良いはずだ). そしてこの viewer.html をダブルクリックするだけで web browser 上に画面を開き動作する,便利なソフトだ. あとはこの画面へ ipynb ファイルをドラッグ&ドロップすれば表示されるので,その web browser で 印刷pdfに保存 などとして pdf に変換すれば良い.


  • (どのOSでも使えるが chrome web browser 専用. インストールも簡単でおすすめ) Jupyter Notebook Viewer (chrome 拡張機能)

    Chrome web browser に拡張機能として追加後,拡張機能の管理画面で「ファイルの URL へのアクセスを許可する」を ON にすれば使えるようになる. 具体的な使い方は,chrome の上部のアドレスバーに ipynb ファイルをドラッグ&ドロップすればファイルのアドレスが入力されるので,あとは enter キーを押せば良い.一瞬だけ,変換のために待たされるがすぐ表示されるだろう.
    あとは chrome web browser で 印刷pdfに保存 などとして pdf に変換すれば良い.


  • (MacOS 用.おすすめらしい) Jupyter Notebook Viewer Jupyter Notebook Viewer
    インストール方法は web の Getting started を読もう.まあ,ダウンロードしてファイルを適切な場所に置くだけで済むようだ.