jupyter notebook代码导出_Jupyter Notebook导出包含中文的pdf_亲测有效
Jupyter Notebook是很好的數(shù)據(jù)科學(xué)創(chuàng)作環(huán)境,是非常方便的Python代碼編輯器。jupyter提供導(dǎo)出的格式有.py、.html、.md、.pdf等。目前用其導(dǎo)出包含中文的pdf會遇到很多坑,網(wǎng)上也有一些解決方案,大致分為兩種方式,一是安裝 pandoc并不斷根據(jù)報錯提示安裝sty文件,不是很有效,另一種是安裝MiKTeX并改LaTeX文件。本文主要講第二種方式。Jupyter Notebook支持的導(dǎo)出格式
從效果來看,網(wǎng)頁中notebook的渲染是最好看的,導(dǎo)出的html對代碼和超鏈接失真嚴重。在網(wǎng)頁上點Download as -> PDF via LaTex的時候先是說缺少Pandoc庫,于是pip install pandoc,之后不再說缺少這個庫了,而是
nbconvert failed: pdflatex not found on PATH 或者 nbconvert failed: PDF creating failed, captured latex output。查了一些資料后改用命令行,要避免'xelatex' 不是內(nèi)部或外部命令,也不是可運行的程序或批處理文件,需要先安裝MiKTeX,在其官網(wǎng)下載后,Windows版一路next安裝就行,安裝包有190MB,安裝過程還是耗費些時間的。安裝過程中其實就在自動地安裝一些sty模塊了,簡化了自己安裝的步驟。安裝MiKTeX的部分過程
下載安裝完成之后的步驟是:
1, ipynb文件編譯為tex
在命令行中定位到要轉(zhuǎn)換的jupyter文件的路徑下,輸入
jupyter nbconvert --to latex yourNotebookName.ipynb編譯ipynb文件為LaTeX文件
在文件目錄下就可以看到一個叫yourNotebookName.tex的LaTeX文件了。
2, 手動編輯latex文件
為了能支持輸出中文,需要改一下tex文件,在編輯器(我用的是Notepad++)打開剛才生成的LaTeX文件,
在\documentclass{article}(沒有這一句就在\documentclass[11pt]{ctexart} 的后面插入下面的語句)后面插入
\usepackage{fontspec, xunicode, xltxtra}
\setmainfont{Microsoft YaHei}
注意的是,目前(2019年8月)下載的MiKTeX 通過上面語句編譯生成的tex會缺少一句\usepackage{ctex} ,所以如果在\setmainfont{Microsoft YaHei}缺了對ctex的引用的話,就需要加上 \usepackage{ctex} 。修改latex文件
3, 轉(zhuǎn)LaTex為PDF
隨后在命令行下輸入:(我演示文件用的是GeoCluster.tex)
xelatex yourNotebookName.tex命令行轉(zhuǎn)latex為pdf
如果之前沒有運行過xelatex,首次運行會安裝一些依賴文件,會慢一些,最后運行完畢:運行完xelatex命令
可以在文件夾下看到輸出的文件:文件夾下的輸出結(jié)果
其中:.ipynb 是我們的jupyter文件
.tex 是由jupyter notebook文件生成的
.pdf 是我們最后的目標(biāo)文件由.tex文件生成
.log、.out、.aux是LaTex生成pdf的一些輸出和日志
總結(jié)一下,從jupyter notebook生成pdf文件需要的依賴項還是比較多的,Windows下安裝MiKTeX才能用xelatex命令。生成步驟是先把ipynb文件編譯為LaTex,然后為了支持中文修改一下lex文件,最后轉(zhuǎn)換為pdf文件。
最后效果如下,雖然還是比不上網(wǎng)頁端.ipynb的直接渲染效果,但比起導(dǎo)出的html等格式,更好地作為展示格式。生成pdf的效果
有可能跑xelatex yourNotebookName.tex會遇到如下問題:LaTeX里字體形狀不符合要求,會改為默認字體,于是中文全部消失了,這種情況需要加上ctex的支持。運行提示LaTeX里字體形狀不符合要求增加對ctex的支持
之后就正常導(dǎo)出包含中文的pdf文件了。
另外從ipynb文件變成pdf文件還可以采用的方式有:打開ipynb文件后在瀏覽器直接選擇打印;
導(dǎo)出markdown在Typora軟件中選擇導(dǎo)出為PDF;
這三種方式生成的PDF效果對比如下圖:
可看出,文中這種導(dǎo)出LaTeX再變成PDF是很實用的。
注:2,查了一下ctex的資料:CTeX 中文套裝在 MiKTeX 的基礎(chǔ)上增加了對中文的完整支持。
總結(jié)
以上是生活随笔為你收集整理的jupyter notebook代码导出_Jupyter Notebook导出包含中文的pdf_亲测有效的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 彩色验证码实现
- 下一篇: 递归算法实例:阶乘(vb.net代码)