iPython nbconvert和 latex : use . eps代替.png进行绘图

标签 ipython

我有一个包含嵌入式绘图的iPython笔记本(即它包含命令plot(x,y))。当我发出命令ipython nbconvert --to latex --post PDF --SphinxTransformer.author ='Myself'MyNotebook.ipynb时,生成的.PDF文件包含该图,但已导出到.PNG,所以它没有看起来非常好(像素化)。如何告诉 nbconvert 改为将所有图/图导出到.E​​PS?

谢谢

最佳答案

首先,笔记本不负责创建图,而是使用matplotlib,这可以将您的图以eps,pdf,svg等高质量呈现在出版物中。

我同意默认的内联绘图格式(即png)由于多种原因并不是最佳用于出版物。正如您在答案中发布的github问题中所给出的那样,可以通过调用以下方法将内联后端配置为使用svg而不是png

%config InlineBackend.figure_format = 'svg'

在代码单元中。
这样,新创建的地物图将是矢量的(如Matt所说,已经渲染的png不会被转换!)。这些svg嵌入在笔记本中(svg可以由现代浏览器呈现),随后通过nbconvert转换为pdf。这些pdf满足发布准备图的要求。但是,请注意,这些svg可能非常大(与png相比),并且可能会大大减慢笔记本的处理速度。

您最初的问题是关于eps图形。如上所述,matplotlib可以渲染eps,因此,您始终可以执行savefig('plot1.eps')之类的操作来创建所需的图形。实际上,这就是我创建出版物数字的方式(笔记本中为png,纸张中为eps)。
假设我们将让IPython生成eps文件(嵌入但不可在浏览器中渲染)。 nbconvert生成的tex文件旨在与pdflatex一起使用。如果提供了eps文件,则pdflatex会将其转换为pdf,以包含在最终文档中。因此,基本上,它的功能与nbconvert当前对svgs的功能相同。因此,没有任何好处。

最后,我想指出的是,即使nbconvert生成的tex文件看起来很棒(尤其是使用master分支创建的tex文件),恕我直言,也无法不触摸(例如添加标题,缩放图像等)使用这些文件。 ..)。因此,您总是可以在此步骤中将eps文件包括在论文中。

关于iPython nbconvert和 latex : use . eps代替.png进行绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19659864/

相关文章:

python - 如何在 Python 的 PyPyODBC 模块中使用 FetchAll?

python - 无法在 Visual Studio Code 中启动 Jupyter Notebook

python - 如何启动 IPython 内核并使用 ZMQ 套接字进行连接?

python - iPython:导入的模块找不到它的共享库

python - 让 'interact' 使用 IPython 控制台,而不是标准的 Python 控制台?

ipython notebook 在单元格之间导航

python - 控制 matplotlib 子图的 wspace

python - 艰巨的工作流程编写 Latex 书全是 Python 代码

python - ipython 和 python 之间的输出差异

ipython - 在jupyter笔记本中删除后释放内存