jupyter notebook 导出 pdf ——代码隐藏、标题及内容支持中文问题

jupyter notebook 导出 pdf ——标题及内容支持中文、代码隐藏问题

1 导出 PDF 时支持中文

  • 1 安装 pandoc下载地址,选择默认安装即可,可选择安装位置。
    在这里插入图片描述
  • 2 安装Miktex下载地址,官网上有详细的安装过程,选择默认安装即可,在安装过程中可以选择安装位置。
    在这里插入图片描述如果过程 1、2 安装程序过程中没有自动配置系统变量,需要把过程 1、2 中的安装路径手动配置到系统变量 path 中,例如我的系统路径如下:
    在这里插入图片描述
  • 3 安装所需的宏包

在自己新建的文档中找到转 PDF 的选项,自动提示安装各种宏包 直接点击安装即可(安装数次,直到安装完毕。。。)
在这里插入图片描述在这里插入图片描述完成上述 3 个步骤之后,可以成功转换英文内容,包括图片、代码高亮等,但不支持中文。

  • 4 修改导出 PDF 的配置

若要使正文中的中文正常显示,需要修改配置文件中的 article.tplx ,可以在计算机中搜索该文件的位置(一般在 ~\Anaconda3\Lib\site-packages\nbconvert\templates\latex\article.tplx),并利用 notepad++、UE 等编辑工具打开并将 \documentclass[11pt]{article} 修改为 \documentclass[11pt]{ctexart}
在这里插入图片描述在这里插入图片描述
通过上述修改之后,正文中的中文可以正常显示,但是标题上的中文不能正常显示,需要修改 base.tplx 文件(与 article.tplx 在同一文件下),具体的修改步骤如下:

  • 注销 fontenc:由 \usepackage[T1]{fontenc} 修改为 %\usepackage[T1]{fontenc};
  • 修改 tittl 生成规则:((* block title *))\title{((( resources.metadata.name | ascii_only | escape_latex )))}
    ((* endblock title *)) 修改为:((* block title *))\title{((( resources.metadata.name | escape_latex )))}((* endblock title *))

修改上述配置之后,需要重启 jupyter notebook,之后就可以正常转换成 PDF 文档了。

2 隐藏 jupyter notebook编辑界面的代码

  • 1 在任意 cell 中执行如下语句,会出现如下图的代码,点击后会隐藏代码 cell 与 cell 前面的编号。如果想保留编号,把下面代码中的 .prompt 去掉。
from IPython.display import display_html
display_html("""<button οnclick="$('.input, .prompt, .output_stderr, .output_error').toggle();">Toggle Code</button>""", raw=True)

在这里插入图片描述在这里插入图片描述

  • 2 安装 nbextensions 的插件

Windows 系统需要在 cmd 中执行如下命令:

# 安装 jupyter_contrib_nbextensions
pip install jupyter_contrib_nbextensions
# 安装 javascript 和 css 文件
jupyter contrib nbextension install --user

在执行以上命令时,需要关闭 jupyter notebook,其详细的内容可以参考该链接。然后对 jupyter notebook 的 home 页出现的 nbextensions 进行设置,选中 Hide input all 项
在这里插入图片描述在新建的编辑文档点击下图中的隐藏代码图标即可。
在这里插入图片描述
常用的插件介绍可以参考这篇文章,插件中各选项的详细介绍,可以参考官方介绍

  • 3 制作类 PPT 演示文档

在编辑好的文档中依次选择下图 view 中的选项
在这里插入图片描述
之后在文档中的右上角会出现下图中选项框,选择 slide 、sub-slide 或者 skip 即可。
在这里插入图片描述最后利用 cmd 或者 Terminal 在上述文档所在的目录执行如下语句:

jupyter nbconvert .ipynb --to slides – post serve
其中
.ipynb 替换成上述编辑的文档名称

在这里插入图片描述

3 导出PDF代码隐藏

  • 1 在配置文件 article.tplx 的最下面添加如下语句
((* block input_group *))
((* endblock input_group *))

在这里插入图片描述
通过在配置文件中添加上述语句,可以把任何部分含有中文、输入代码的文档正常导出为不展示代码的 pdf 文件,但是导出的文件中任然含有 OUT[N ] 字符串。
在这里插入图片描述

4 参考资料

在解决上述问题的过程中,主要参考了一下几篇文章,
1 https://zhuanlan.zhihu.com/p/50297880
2 https://www.helplib.com/GitHub/article_100408
3 http://blog.genesino.com/2017/12/jupyter/
4 https://github.com/jupyter/nbconvert

  • 7
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值