经常敲Python的小伙伴对Jupyter肯定不陌生,对小编而言他就是一个很好的IDE,不仅可以分块运行代码,方便调试,还可以写md,用来记笔记也是很好的选择,在一次实验中突然意识到Jupyter-notebook可以转tex,发现这个功能真的非常好用,给大家安利安利。
预备内容:
python中的Jupyter-notebook、Jupyter-lab包,没有可以直接pip安装。(安装conda的同学可以跳过,conda中自带这些内容)
任意的LaTeX发行版,如果不想下载可以使用overleaf(推荐)。
一个浏览器(不然你怎么打开Jupyter-lab)
一个细节:
只有Jupyter-notebook才可以转tex,Jupyter-lab是不能转的。
从Jupyter-lab开始:
安装Jupyter之后,无论是mac还是windows用户,都可以在终端(命令行)中输入jupyter-lab来启动Jupyter
jupyter-lab
如果提示没有该命令,请搜索关于Jupyter如何添加到环境变量的文档。
启动后会通过默认浏览器弹出窗口,或者在浏览器内输入
http://localhost:8888/lab
也可以达到效果(大概长这样):
点击箭头就可以创建一个.ipynb(哎!python🐂🍺)文件,这是Jupyter独有的,也是很好的,我们可以
在文件中分段编写代码,按shift+enter可以分段执行,并且有缓存区。比如你从数据库要花1个小时拉下来很多数据,如果是.py文件每次调试需要重新拉取数据,而.ipynb不需要,一次拉去,终身受用(不刷新网页,不清内存)
之后可以在文件内写自己的一些代码和文章等,md支持一部分LaTeX数学公式,所以写公式也是很棒的
点击图片所示就可以写入md格式代码。(如何写md文件请自行百度)
一般来说,我们写到如图的地步就可以了,对于自己学习而言也是足够的,但是如果想写一套完整的文档,报告之类的,怎么实现呢,就是本文的重点了。
Jupyter-lab中嵌套的md语法可以支持很多,但是对于tikz、插图、数学公式等等都不能做的很完美,我们需要在LaTeX中做进一步的修饰完善,我们需要将其转成tex格式做进一步的编写。(下图展示了公式有多丑)
首先,更改url,直接进入Jupyter-notebook界面:
把图中箭头lab改成tree即可,找到自己的ipynb文件,点击file -> download as -> tex
图中是中文,对应英文界面就是之前所述。
下载好之后本地有tex发行版的可以在本地运行,本文这里上传至overleaf。
紧接着编译即可,英文文档选择pdfLaTeX,中文选择XeLaTeX。需要注意的中文生成后不会添加ctex宏包,需要手动添加。与ipynb一致,生成的tex可以自动定义好代码和其他环境,如果有需求可以稍作更改,不过本身的已经很不错了。
这里注意一下,在ipynb中写好的md代码段一定要编译,不然会变成下面这样