Jupyter Notebook
最近搞機器學習用到了Jupyter Notebook.
作為一個實時記事本,有時需要將內容導出為PDF.
但是,Jupyter Notebook自帶的File -> Download as -> PDF via Latex,需要Pandoc和XeLatex支持,否則會出現錯誤.
以下是Windows下的操作步驟
不在意非得用PDF via Latex可以直接去看最后一種方法
安裝Pandoc和XeLatex
1.安裝Pandoc
Pandoc是一個可以方便地對不同格式文檔進行轉換的包,你可以通過在pip install pandoc
很方便的獲取它,或者你可以在官網下載
事實上,如果你是通過Anaconda安裝的Jupyter Notebook的話,Pandoc本身已經被集成了,因此你並不需要重新安裝.
2.安裝MikTex
MikTex是Windows下常見的LaTex支持(當然你也可以在Mac或者Linux上安裝).
在MikTex官網下載安裝它.
注意,為了讓Jupyter Notebook能夠使用MikTex,你必須將它添加到PATH里.
也就是安裝目錄的下的\miktex\bin\x64
(當然32位版的就是\x86
)
安裝之后在cmd測試一下xelatex能否使用
中文支持
因為默認模板的問題,通過Download as->PDF via Latex直接導出的文檔會缺失中文,可以通過以下方法解決
- 導出為.tex再轉化為PDF
1. 在網頁中選擇File ->Download as -> LaTex
2. 修改tex,增加中文支持
在\documentclass{article}后面插入\usepackage{fontspec, xunicode, xltxtra} \setmainfont{Microsoft YaHei}
3. 在cmd下通過`latex`命令生成PDF
這種方法可能會存在換行錯誤,而且需要手動調整圖片.
- 修改默認模板
1.在Anaconda的安裝目錄下找到lib/python3.6/site-packages/nbconvert/templates/latex/
中的article.tplx
打開后修改為
((* block docclass *))
\documentclass[11pt]{article}
\usepackage{xeCJK} %引入之前安裝的xecjk包
((* endblock docclass *))
用HTML導出(推薦)
通過上面兩種方法,可以成功通過Latex導出PDF,但是,這樣導出的文檔對於Markdown等的格式支持不是很好.
此外,導出為HTML不需要其他依賴,並且對中文支持也很好.
這是網頁中的Markdown效果
這是導出后的PDF
因此,為了保留原有的格式,可以先導出為HTML,再用瀏覽器打印為PDF.
這是導出后HTML的效果
選擇打印機為Microsoft Print to PDF
注意!這里一定要將頁邊距設置為無,否則會出現排版錯誤.
打印出PDF的效果
可以看到效果還是不錯的.