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 ...
随机推荐
- shell把字符串中的字母去掉,只保留数字
1 编辑测试文件 [root@hz-kvm cephdisk3]# cat > 1.txt <<EOF> 120Tib> EOF 2 显示文件[root@hz-kvm c ...
- 吐血推荐,想进BAT必看
不必太纠结于当下,也不必太忧虑未来,人生没有无用的经历,当你经历过一些事情后,眼前的风景已经和从前不一样了.--村上春树 一.包含如下内容 ActiveMQ消息中间件面试专题 BAT80道面试题 BA ...
- numpy模块&pandas模块
目录 numpy模块 pandas模块 numpy模块 import pandas as pd import numpy as np df=pd.Series(np.array(['a','b'])) ...
- JQuery文件上传插件JQuery.upload.js的用法简介
JQuery文件上传插件,这个插件很小,用法很简单,效果却很棒.注意:JQuery版本要求1.8及以上,大家执行如果没效果,则检查JQuery版本,如果是1.8及以上,则该插件源码中的.size()需 ...
- CSRF 跨站请求伪造学习笔记
参考文章: 漏洞挖掘之CSRF CSRF花式绕过Referer技巧 What-是什么 CSRF(Cross-site request forgery)跨站请求伪造.攻击者通过构造特殊链接或者页面,盗用 ...
- css常用的简写技巧_css background简写、css border 简写、css font属性简写等
css样式中有很多简写方式,比如:设置背景,字体,边框,盒子等.我们都可以把css代码合并为一行,这篇文章将总结有哪些属性支持css简写. 1.背景background属性 background-co ...
- 通过注入DLL后使用热补丁钩取API
通过注入DLL后使用热补丁钩取API 0x00 对比修改API的前五个字节钩取API 对前一种方法钩取API的流程梳理如下: 注入相应的DLL 修改原始AI的函数的前五个字节跳往新函数(钩取API) ...
- Springboot下实现阿里云短信验证功能(含代码)
Springboot下实现阿里云短信验证功能 一 开通阿里云短信服务 阿里云官网注册登录 找到短信服务并开通 打开短信服务的管理台 在国内消息那栏中添加签名管理和模板管理(按照格式要求去写) 在右上角 ...
- day16 函数对象与闭包函数
目录 一.函数对象 1.1函数可以被引用 1.2函数可以作为容器类型的元素 1.3函数可以作为参数传入另外一个函数 1.4函数的返回值可以是一个函数 二.闭包函数 1 什么是闭包函数 2 闭包函数的用 ...
- Idea JAVA开发工具快速上手-常用快捷键汇总
前言: 之前一直使用Eclipse 系列开发IDE工具,由于eclipse是开源的所以,一般情况,eclipse基本上每一个java入门者的首选开发工具,其次 Myeclipse.不过现在越来越多的人 ...