Jupyter notebookからPDF/TeX出力

Jupyter notebook形式で作成したファイルをpdf/TeX形式に変換しようとしたら少しはまったので,今後のためのメモ。

pdf/TeX形式で出力可能にするための設定

XeLaTeXのインストール

ubuntu 16.04なら以下の通り。

# apt-get install texlive-xetex
# apt-get install texlive-generic-extra

pdf化の日本語対応

/usr/local/anaconda3/lib/python3.6/site-packages/nbconvert/templates/latex/base.tplxを修正

--- base.tplx.org	2019-12-20 11:30:09.881902845 +0900
+++ base.tplx	2019-12-20 11:32:55.112929136 +0900
@@ -21,6 +21,10 @@
     \else
     	\usepackage{fontspec}
     \fi
+    \usepackage{xeCJK}
+    \setCJKmainfont[BoldFont=IPAexGothic]{IPAexMincho}
+    \setCJKsansfont{IPAexGothic}
+    \setCJKmonofont{IPAGothic}
 
     % Basic figure setup, for now with no caption control since it's done
     % automatically by Pandoc (which extracts ![](path) syntax from Markdown).

問題点

これで,jupyter notebookのメニューからpdf形式での出力ができるようになり,デフォルトスタイルのままでも結構いい感じなので喜んでいたが,よく見たらMarkdownセルに埋め込んでいた画像が消えてなくなっている。いろいろ調べると以下の通りの症状。

  • markdownセルにhtmlタグを使って,<img src="hoge.png" width="600">などと埋め込んでいた画像は,pdf/texファイルにすると消えてしまう。
  • markdownの画像埋め込みタグ![some image](hoge.png)で埋め込んだ画像は大丈夫。

画像サイズを調整するにはhtmlタグを使わざるを得ない。 その部分は,適当なスクリプトで画像埋め込みの命令文(<img src...>)をLaTeXの命令文(\includegraphics{...})に置き換えるスクリプトで前処理をするくらいしか,今の所解決法が思い浮かばない。