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