背景
Jupyter Notebookは学術研究から業務のデータ分析まで幅広い場面で使用されています。その成果や分析結果を他者と共有する際、PDF形式はその汎用性と一貫した表示により非常に役立ちます。
本記事のメリット
Jupyter Notebookの.ipynbファイルを コマンド1つ でPDFに変換できるようになります。
環境構築
PDFに変換するための手順と必要なツールについて詳しく解説します。
1. Jupyter Notebookのセットアップ
.ipynbファイルを変換するためのツールをインストールするためにAnacondaが必要です。
インストール方法:
Anacondaの公式サイトから、、Anacondaをインストールします。
詳細は省きます。
2. ライブラリのインストール
nbconvert
nbconvertは、Jupyter Notebookの内容を様々なフォーマットに変換するための便利なツールです。
役割
- ipynbファイルを静的なフォーマット(例: HTML, LaTeX, PDF)に変換します。
- グラフやコード、マークダウンなどを適切に整形して出力します。
インストール
conda install nbconvert
pandoc
pandocは、ドキュメントコンバーターとして非常に人気があり、多様なフォーマット間での変換をサポートしています。特に、Jupyter NotebookとPDFの間での変換には、内部でpandocが利用されます。
役割
- さまざまなマークアップフォーマット間での変換をサポートします。
- .ipynbファイルを中間フォーマットに変換する際に、nbconvertと連携して動作します。
インストール
conda install pandoc
3. TeXのセットアップ
変換過程でPDFを生成するためには、 LaTeX (TeX) が必要となります。nbconvertは内部でLaTeXを使用してPDFファイルを作成します。
本記事ではTexのインストール方法は省きます。
こちらのサイトにとても詳しく載っているので参考にしてください。
4. templateの変更
.ipynbファイルに日本語を使用している場合、日本語が正しくpdfに変換できないためnbconvertの設定ファイルであるtemplateファイルの修正を行います。
nbconvertの設定ファイルの場所を探す
下記コマンドでnbconvertの設定ファイルがありそうなディレクトリを探します。
jupyter --path
config:
/Users/daiki/.jupyter
/Users/daiki/.local/etc/jupyter
/Users/daiki/anaconda3/etc/jupyter
/usr/local/etc/jupyter
/etc/jupyter
data:
/Users/daiki/Library/Jupyter
/Users/daiki/.local/share/jupyter
/Users/daiki/anaconda3/share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
runtime:
/Users/daiki/Library/Jupyter/runtime
data:
の一覧のパスを探すといずれ見つかります。
私の環境(MacOS)では、 data:
の /Users/daiki/anaconda3/etc/jupyter/nbconvert
でした。
nbconvertディレクトリの中に、 templates/latex
が存在しているので移動してください。
~/anaconda3/share/jupyter/nbconvert/templates/latex
(私の環境の場合)上記の場所がカレントディレクトリです。
この latex
ディレクトリの中にある index.tex.j2
というtemplateファイルの修正を行います。
((=- Default to the notebook output style -=))
((*- if not cell_style is defined -*))
((* set cell_style = 'style_jupyter.tex.j2' *))
((*- endif -*))
((=- Inherit from the specified cell style. -=))
((* extends cell_style *))
%===============================================================================
% Latex Article
%===============================================================================
((*- block docclass -*))
- \documentclass[11pt]{article}
+ \documentclass[xelatex,ja=standard]{bxjsarticle}
((*- endblock docclass -*))
.ipynbファイルをPDFに変換する方法
コマンドラインを利用して、直接NotebookファイルをPDFに変換します。
この方法は、自動化にも利用可能です。
手順
1. ターミナルやコマンドプロンプトを開きます。
2. 変換したい.ipynbファイルが存在するディレクトリに移動します。
cd your_.ipynb_directory
3. .ipynbファイルを変換します。
jupyter nbconvert --to pdf your_file.ipynb
上記のコマンドを実行すると、同じディレクトリに your_file.pdf
という名前のPDFファイルが生成されます。
複数ファイルの一括変換
変換したい.ipynbファイルが複数ある場合、変改したいファイルを同じディレクトリに集めます。
そして、そのディレクトリ内で、下記コマンドを使用すると全ファイルが変換することができます。
jupyter nbconvert --to pdf *.ipynb
おまけ:その他の変換オプション
nbconvert
は、 .ipynbファイル
をPDFに変換するだけでなく、他の多くのフォーマットにも対応しています。
以下は、その一例です。
HTML:
jupyter nbconvert --to html your_file.ipynb
上記のコマンドを実行することで、 .ipynbファイル
の内容をブラウザで閲覧可能な HTMLファイル
に変換することができます。
Markdown:
jupyter nbconvert --to markdown your_file.ipynb
このコマンドを使用することで、 .ipynbファイル
を Markdown形式
に変換し、GitHubなどでの共有や編集が容易になります。
その他にも、LaTeX、そしてスライド形式など、さまざまなフォーマットへの変換が可能です。変換オプションはnbconvertの公式ドキュメントを参照してください。
終わりに
いかがだったでしょうか。
今回はコマンドを用いたPDF変換方法を紹介しました。
こういう作業はいかに楽するかを考えるのことが大切ですね。
読んでいただきありがとうございました。
参考文献