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并支持中文
Jupyter Notebook 导出PDF与Latex中文支持的更多相关文章
- 【原创】JavaFx程序解决Jupyter Notebook导出PDF不显示中文
0.ATTENTION!!! JavaFx里是通过Java调用控制台执行的的jupyter和xelatex指令, 这些个指令需要在本地安装Jupyter和MikTeX之后才能正常在电脑上运行 1.[问 ...
- Jupyter Notebook PDF输出的中文支持
Jupyter Notebook是什么 Jupyter Notebook是ipython Notebook 的升级.Jupyter能够将实时代码,公式,可视化图表以Cell的方式组织在一起,形成一个对 ...
- php导出pdf,dompdf中文字体乱码解决办法(特别是代码迁移引起的乱码)
dompdf\lib\fonts\dompdf_font_family_cache.php记住这个文件里面存放的是字体生成的缓存,迁移时如果覆盖了这个文件会导致乱码而且很难找到出错的地方,相信我... ...
- latex中文支持ubuntu
latex安装: sudo apt install texlive-full 中文字体安装: sudo apt-get install latex-cjk-all 字体包中包含bsmi,bk ...
- Redmine 甘特图导出 PDF 和 PNG 中文乱码问题
Redmine使用了RMagick来处理图片,fpdf处理PDF,并在调用时设定了字体PDF中文字体 redmine 中关于PDF字体设置的代码 case pdf_encoding ...
- Jupyter notebook 转 pdf [完整转换]
- jupyter notebook 目录配置、导出 tex 和 pdf 及中文支持
环境:macbook pro, mactex, jupyter notebook, brew 安装pandoc从而支持格式转换为tex: brew install pandoc 修改tex artic ...
- Jupyter Notebook通过latex输出pdf
主要步骤 1.将ipynb编译成tex ipython nbconvert --to latex Example.ipynb 2. 修改tex,增加中文支持 在\documentclass{artic ...
- jquery插件导出excel和pdf(解决中文乱码问题)
参考文件:http://jackyrong.iteye.com/blog/2169683 https://my.oschina.net/aruan/blog/418980 https://segmen ...
随机推荐
- 01 . Shell详细入门介绍及简单应用
Shell简介 Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 解释处理Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输 ...
- day01微信小程序
一.基本概要 1.一个程序接口,可以集成很多功能,也就是在程序上再次开发 腾讯:微信+小程序 阿里:支付宝 +小程序 小程序的使用量很多 2.为什么要微信小程序? 1.微信用户群体大 2.容易推广, ...
- 《The Design of a Practical System for Fault-Tolerant Virtual Machines》论文总结
VM-FT 论文总结 说明:本文为论文 <The Design of a Practical System for Fault-Tolerant Virtual Machines> 的个人 ...
- 列拖拽顺序调整-sortable.js使用
最近在做一个单表统计功能,涉及到一个查询列配置,但是查询出来的列顺序,可以进行配置,通过写列的排序当然阔以,但是方法就不美丽了.所以,在网上搜了一下拖拽的组件,最终定位Sortable.js,简单易用 ...
- SQL基础随记3 范式 键
SQL基础随记3 范式 键 什么是范式?哈,自己设计会使用但是一问还真说不上来.遂将不太明晰的概念整体下 什么是 & 分类 范式(NF),一种规范,设计数据库模型时对关系内部各个属性之间的 ...
- CF833A The Meaningless Game 题解
题目 Slastyona and her loyal dog Pushok are playing a meaningless game that is indeed very interesting ...
- 【Python】直接赋值,深拷贝和浅拷贝
直接赋值: 对象的引用,也就是给对象起别名 浅拷贝: 拷贝父对象,但是不会拷贝对象的内部的子对象. 深拷贝: 拷贝父对象. 以及其内部的子对象 在之前的文章中,提到可变对象和不可变对象,接下来也是以这 ...
- LNMP架构应用案例----WordPress
一.环境部署 mysql 172.16.1.10 数据库 web01 10.0.0.11 172.1 ...
- python面试题三:Python 网络编程与并发
1 简述 OSI 七层协议. OSI七层协议模型主要是: 应用层(Application):为用户的应用程序(例如电子邮件.文件传输和终端仿真)提供网络服务. 表示层(Presentation):使用 ...
- git只操作某个文件夹
在我们的工作中,可能会有这样的情况发生:我只想提交某一个文件夹,而另外的文件夹我并不想提交. 遇到上述情况,我们再git中这样解决: 1.查看某个文件夹的状态(这里我用log文件夹做实验). 我们可以 ...