事情起因:
基本我所有的code以及代码注释,以及出图说明都统一放在jupyter notebook中,
代码注释,或者文档说明,实际上就是markdown所做的那一切,都是在markdown中写的;
代码的话,其实就是切换解释器,内核,基本上都在jupyter中;
所以我基本上图文相关的一切,无论是工作还是学习,都是以ipynb格式数据保存的。
1,jupyter notebook自带的export格式转换功能:
以上面这篇ipynb格式的jupyter notebook为例,
基本上会遇到这个报错,但是实际上我们安装了xelatex(TeX),当然安装Tex可以参考我之前的博客教程来:用vscode写latex-1_本地 latex-优快云博客
这一块暂时搁置!!!
①Tex我是按照官网Quick install - TeX Live - TeX Users Group安装的,但是安装了之后还是有问题,像上面那样报错,但是实际上Tex已经添加到环境变量中了
②可以按照我上面那篇我之前的博客来处理
③很多python库pip安装的时候看似安装成功,对应的requirements看似already satisfied,但是实际上很多库都是安装失败了,一般都需要再次安装,强制安装,即使用
pip install soupsieve --force-reinstall
当然也有可能是因为其中出现了一些无效字符也就是invalid character
所以基本上是转pdf的时候会失败;
如果是转html的话:格式上是没问题的
当然实际上转换过程实际上就是执行了一个jupyter nbconvert命令
2,使用jupyter nbconvert转换命令
(1)转换为html格式:
jupyter nbconvert /data1/project/ZFP_block/PTM/test1.ipynb --to html
其实本质上就是jupyter自带的export,而且转换也没有问题
(2)转换为pdf格式:
jupyter nbconvert /data1/project/ZFP_block/PTM/test1.ipynb --to pdf
虽然转换过程是没有问题的,但是转换之后的文件是不成功的,也就是有问题的,图片文字之类的都会出现顺序问题、内容缺失问题,
code chunk部分的还好,但是markdown部分的文字或者是图片就很容易丢失。
更遭的就是和1中的export一样的报错:
(3)转换为markdown格式:
再使用vscode中的markdown插件export为pdf格式,
但是因为我经常是截图插入图片,然后如果转换为md文件之后,这些图片命名id都会相差不大,结果导致插入的图片经常显示效果一致,但是我目前又没有办法批量转换这些截图的id
——》
所以现在的方案:
就是jupyter的export或者是jupyter的nbconvert命令,首先转换为html格式,再从html转换为pdf格式;
后者转换有很多方法,建议找到一种损失比最小的方法,如果仅仅只是网页ctrl+p打印的话,格式排版上会有很多问题
——》
实际上nbconvert有很多种转化方式:
html格式显示最美,但是html一般只能浏览器中打印为pdf;
latex、markdown本质类似,但是导出时候有图片id问题,暂时弃用;
pdf直接转换会有问题;
webpdf还可以,比直接网页浏览器打印pdf要好,但是显示效果上是图片之间挤得比较近,结果会导致图片上下文的文本/coda框排版留白很大,而且打印会导致显示不完全,还是老毛病
3,或者走latex那一套