我正在尝试插入一个pgf
用 matplotlib 创建的文件。此文件引用一个png
文件(因为我在图中插入了一个 png 图形)。
当我将 png 文件放在与我的tex
文件相同的文件夹中时,一切正常,但如果 png 文件与 pgf 文件位于同一个文件夹中,则会出现错误
Package pgf Warning: File "plot2.png" not found when def
ining image "pgflastimage".
我尝试过使用import
,但我不知道它如何适用于 pgf。如果我将 pgf 更改为 tex,它仍然找不到 png:
\documentclass{article}
\usepackage{pgf}
\usepackage{import}
\begin{document}
% \subimport{../pgf/}{plot.pgf} --> Not working
\input{../pgf/plot.pgf}
\end{document}
编辑:
\pgfimage{...}
在 pgf 文件中通过进行更改\includegraphics{...}
似乎可以正常工作subimport*
。但是,matplotlib 使用 生成 pgf pgfimage
,因此需要手动更改输出图。也许有人知道更好的解决方案。
答案1
编辑:matplotlib
后端已经升级发射\includegraphics
而不是\pgfimage
。最好的解决方案是matplotlib
尽可能进行更新。
原始答案
据我所发现,没有更好的方法。 这个答案注意pgfimage
使用includegraphics
,但不传播相对路径。查看matplotlib pgf 后端源,更改pgfimage
为includegraphics
似乎不是matplotlib
等式边上的可配置选项。
我想到的一个解决方法是拦截输出并更新相应的行。
# lots of plotting commands
fig.savefig(output)
_, ext = os.path.splitext(output)
if ext == ".pgf":
with open(output, "r") as fid:
lines = fid.readlines()
with open(output, "w") as fid:
for line in lines:
fid.write(re.sub(r"\\pgfimage", r"\\includegraphics", line))
如果您可以编辑绘图程序,这实际上只是一个“解决方案”。