Windows + Jupyter notebook + miktex + pandoc 输出 pdf

Posted 学渣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows + Jupyter notebook + miktex + pandoc 输出 pdf相关的知识,希望对你有一定的参考价值。

1.安装miktex

1.下载安装 MikTeX

2.更新 Maintenance (Admin) -> MiKTeX Update (Admin)

3.配置中文

Maintenance (Admin) -> Settings (Admin) -> 选择 Packages 标签 -> 选择 "Language Support" 底下的选项 "Chinese,Japanese, Korean" -> 应用

 接下来就是打开命令窗口(以管理員身份执行)"

initexmf -u

 

initexmf --edit-config-file updmap

此时会出现一个笔记本,我们就要输入要启用的字型了:

%% T1 font configuration settings. See the MiKTeX manual for help.
Map cwmu.map
Map cwku.map
Map cwfsu.map
Map cwhbu.map
Map cwyu.map

保存,关闭,接着在控制台输入命令:

initexmf --mkmaps

  然后就又是等待,命令完成后,就大功告成了

2.安装pandoc

用文本编辑器打开article.tplx (\\Python27\\Lib\\site-packages\\nbconvert\\templates\\latex\\),修改为

\\documentclass{ctexart}

 

3.try

1.命令行试试

将ipynb编译为tex

ipython nbconvert --to latex Example.ipynb

编译tex,生成pdf

xelatex Example.tex

2.Jupyter notebook试试

3.换个姿势再来一次

ipynb2pdf.py

# coding:utf-8
import sys
import os
import re
import shutil
notebook = sys.argv[1]
texFile = notebook.replace(\'.ipynb\',\'.tex\')
# 1.convert .ipynb to latex file .tex
# 将ipynb文件转为tex文件
print \'1. convert \' + notebook + \' to \' + texFile  
print \'------ \\n\'
os.system(r\'jupyter nbconvert --to latex \' + notebook)
print \'convert over\'
# 2. add Chinese support by adding the string below
# 加入引用的包使支持中文(直接转换中文会丢失)
# \\usepackage{fontspec, xunicode, xltxtra}
# \\setmainfont{Microsoft YaHei} 
# \\usepackage{ctex}
print \'2. add Chinese support to .tex file\' 
print \'------\'
file = open(texFile,\'r\')
str_file = file.read()
strinfo = re.compile(\'(documentclass[\\d\\D]+\\{article\\})\')  #查找的字符line0
m=re.findall(strinfo,str_file)
if len(m) == 0:
    print r\'can not find documentclass[**pt]{article}\'
    sys.exit(1)
str_file = strinfo.sub(\'\\\\1 \\n \\\\usepackage{fontspec, xunicode, xltxtra} \\n \\\\setmainfont{Microsoft YaHei} \\r \\\\usepackage{ctex}\',str_file)  #  替换的字符line1
file.close()
file = open(texFile,\'w\')
file.write(str_file)
file.close()
print \'add Chinese support successed\'
# 3. convert .tex to .pdf by xelatex
# 使用xelatex命令编译.tex文件得到pdf
print  \'3. convert tex to pdf\'
print \'------\'
os.system(\'xelatex \' + texFile)
print  \'convert pdf successed\'
# 4. delete the auxiliary files
# 清理生成的中间文件
# change there if latex file is needed
print \'4. delete auxiliary files\'
print \'------\'
os.remove(notebook.replace(\'.ipynb\',\'.aux\'))
os.remove(notebook.replace(\'.ipynb\',\'.log\'))
os.remove(notebook.replace(\'.ipynb\',\'.out\'))
# change there if latex file is needed
os.remove(notebook.replace(\'.ipynb\',\'.tex\'))
if os.path.isdir(notebook.replace(\'.ipynb\',\'_files\')):
    shutil.rmtree(notebook.replace(\'.ipynb\',\'_files\'))
print \'delete auxiliary files successed\'
View Code

 

python ipynb2pdf.py Example.ipynb

也转换成可执行文件后使用

pip install pyinstaller 

 

pyinstaller -F ipynb2pdf.py 

 

ipynb2pdf.exe Example.ipynb

以上是关于Windows + Jupyter notebook + miktex + pandoc 输出 pdf的主要内容,如果未能解决你的问题,请参考以下文章

数据清洗之 重复值处理

DataSpell下载安装使用

DataSpell---强大的数据科学 IDE

散点图绘制

在 Windows 上通过命令行运行 Jupyter

Jupyter笔记本错误Windows 10