調べて一旦落ち着いたやり方を、ここにまとめておきます。
#目的
- 簡易な報告の場でJupyter Notebookで分析したアウトプットをそのまま見せたい(Power Pointに貼り付けて加工したくない)
- コードを非表示にしてスッキリ見せたい
- 配布用にNotebookをPDF化する際、改ページくらいの体裁は整えたい
#動作環境
下記の環境で動作確認しています。
- OS : Windows10
- ブラウザ : Chrome
- jupyter core : 4.6.1
- jupyter-notebook : 6.0.2
#実装
(1) custom.cssに下記を追記(C:\Users\ユーザ\.jupyter\custom\custom.css)
@media print {
div.inner_cell {display: block}
}
(2) Notebookの改ページしたいところに下記をマークダウンセルとして追加
※セルは存在していますが書いたコードは見えなくなるのでご注意下さい。
(ここを参照しました)
<p><p style="page-break-after:always;"></p>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
(3) Notebookの最後の方に下記をコードセルとして追加
(ここを参照しました)
from IPython.display import HTML
HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Show/hide code"></form>''')
(4)「Show/hide code」ボタンを押下することでコード表示/非表示を切り替えできます。
(5) 一旦htmlファイルとして保存し、htmlファイルを開く。
Jupyter Notebookのメニュー(File-Download as-HTML)から保存する。
(6) PDFファイルとして出力する際は、Chromeブラウザの印刷-送信先を「PDFに保存」に設定する(Show/hide codeボタンを表示したくなければボタンの手前に改ページを入れて最後のページ番号を印刷ページから除く)
他によい方法などありましたらぜひ教えて下さい。