賢くなりたい~賢くなりたくない~♪

見たもの聞いたもの何でも発信!!

Jupyter NotebookでスクリプトをPDF出力できないときの解決策 (IPython) 【エラー】

f:id:ooenoohji:20180316214035j:plain

インタラクティブにプログラミングできて、おまけに同じページにMarkdown式の文章まで書けちゃう優れもののJupyter Notebook (IPython) 。このJupyter Notebookの機能の一つにPDF出力があり、これができるとソースコード+コメントがそのままドキュメントになるため、私は重宝しています(社内のコーディングがそのままドキュメントとしても使えるため)。
このPDF化ですが、始めの設定でつまづく人が多いのではないでしょうか?私自身もつまづき、上の写真のようなエラーがでました。本記事ではPDF出力するための環境設定を紹介します。

AnacondaのインストールだけではPDF出力できない

数値解析や機械学習のライブラリがパッケージになったAnaconda、これをインストールすればPython環境と必要なメジャーライブラリが一気にインストールできます。Jupyter NotebookもAnacondaをインストールすれば自動的にインストールされます。
ですが、Jupyter Notebook上で作成したソースコードやドキュメントをPDF出力するためにはAnaconda以外のソフトウェアをインストールする必要があります。Anacondaのみのインストールだと、以下のようなエラーメッセージが出ます。

500 : Internal Server Error
The error was:
nbconvert failed: xelatex not found on PATH, if you have not installed xelatex you may need to do so...

見たことある方は多いのではないでしょうか?解決策は、以下の写真の文章内にある『xelatex』をインストールすることです。

f:id:ooenoohji:20180316215540j:plain

上の写真中の赤で囲んだのが『xelatex』です。以下、インストールの手順を記して行きます。




【スポンサーサイト】

解決策:xelatexをインストール

xelatexをインストールするには以下のサイトに行って『MikTex』インストーラをダウンロードし、実行することでxelatex問題は解決です。
Home - MiKTeX.org
インストーラのダウンロードはリンク先の「Download」ボタンを押すとダウンロードが開始されます。

MikTexインストール時の注意事項

MikTexをインストールするときには、すべて「Yes」で進めるのではなく、以下のように設定しましょうという注意事項が記載されているサイトを見つけました。
www.texts.io

Installation scopeの設定

f:id:ooenoohji:20180316220453j:plain
Installation scopeはユーザ全員ではなく、自分のみにしましょうとのことです。

missing package Installationのsetting

f:id:ooenoohji:20180316220623j:plain
もう一つ、missing packageをインストールする設定 "Install missing packages on-the-fly" は 『Yes』にしましょうとのことです。
以上の設定でインストールを完了させれば、以下のようにJupyter Notebook上で
「Download as」→ 「PDF via Latex (.pdf)」を選択することで、ソースコードMarkdownをPDF化することができます。
f:id:ooenoohji:20180316220926j:plain

まとめ

PDF出力はソースコードをそのままドキュメント化できるというJupyter Notebookの目玉機能の一つなので、是非設定して使える環境を作りましょう。上にも書きましたが、コーディングがそのままドキュメントになるため、仕事がかなり効率化されます。しかし、注意点としてはコードだけをドキュメントにしても伝わりづらいので、是非、コメントをしっかり付けたコードを書きましょう(余計なお世話かもしれませんが)