Jupyter Notebook 導出PDF與Latex中文支持


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的效果

可以看到效果還是不錯的.

參考

Jupyter Notebook PDF輸出的中文支持
jupyter notebook導出pdf並支持中文


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM