在Inkscape中,可以保存pdf文件,同时生成pdf_tex文件,以便自动格式化为Latex文件。这可以在单击save后选中一个框来指定,指定扩展名为.pdf。
我感兴趣的是直接从我的python脚本中以该特定格式保存matplotlib图形。
这种可能性是否存在,或者可以通过一些技巧来实现?
谢谢
发布于 2018-10-10 07:49:40
一种选择是从matplotlib导出pdf,然后以编程方式使用inkscape,即通过命令行界面来创建所需的格式。
import matplotlib.pyplot as plt
plt.bar(x=[1,2], height=[3,4], label="Bar")
plt.legend()
plt.xlabel("Label")
plt.title("title")
def savepdf_tex(fig, name, **kwargs):
import subprocess, os
fig.savefig("temp.pdf", format="pdf", **kwargs)
incmd = ["inkscape", "temp.pdf", "--export-pdf={}.pdf".format(name),
"--export-latex"] #"--export-ignore-filters",
subprocess.check_output(incmd)
os.remove("temp.pdf")
savepdf_tex(plt.gcf(), "latest")
plt.show()
还要注意的是,matplotlib可以保存为pgf
格式。作为上述方法的替代方案,它绝对值得一试。请参见this example,并将plt.savefig("filename.pgf")
附加到它。在latex代码中使用\input{filename.pgf}
。
https://stackoverflow.com/questions/52718028
复制相似问题