Jupyter Notebookからドキュメント作成を試みた話

業務で得られたデータや測定について、定期的に第三者が見てある程度わかる形で提出する必要があり、これまでは主にMS Officeを使ってpdf化することが多かった。しかしこれでは、一旦解析により得られたデータを画像化し、それを貼り付けるような作業が発生するため多少手間が増える。また解析に用いたコードや操作の履歴などは別ファイルに残すか、それなりに面倒な手間をかけてWordなどに貼り付ける必要があり不便だった。解析からドキュメントの作成までを全てJupyter Notebookで完結しようとしてみたところ、素晴らしく作業が簡略化された。

解析コードに加えMarkdown形式のノートを追加し、そのままドキュメントとした。Notebookをpdf化するために、LaTeX形式で一旦出力した。PandocはMarkdownTeXやHTMLをはじめとする様々な形式のファイルを相互に変換してくれる。
github.com
僕の環境ではAnacondaが勝手に最初からPandocを入れてくれていたようだが、実際の作業においては、こちらのページが大変参考になった。
jupyter notebookをTex,PDFへと変換 - 粗大メモ置き場

環境によってはpdfの出力がうまくいかず、1/3日ほどはまった。dviドライバの都合のようであり、一旦.texを書き出してコードをいじる必要がある。dviドライバとしてdvipdfmxを使用する必要があり、¥usepackageコマンドのオプションにこれを含める必要がある。しかしpandocが吐き出す.texは人間が読むようにはできておらず、どのパッケージにオプションをつけたら良いかわからないのだ。これには解決法と言えるほどのものではないが、¥documentclassのところに角カッコで[dvipdfmx]などとつけておけば勝手に判断してくれるようだ。
一旦.texを経由するのには利点があり、例えばMarkdownで指定した画像ファイルなどはなぜか出力された.texファイルには含まれていない。これを手動で加えるついでにやればそれほどの手間ではない。

結果的にこの試みは非常にうまくいき、提出ドキュメント作成の省力化、作業コードの記録化、包括化などいいことづくめだった。

再勉強の必要性を感じて、LaTeXの本を買った。

[改訂第7版]LaTeX2ε美文書作成入門

[改訂第7版]LaTeX2ε美文書作成入門

読むたびに感動がある。良い買い物だ。