我试图添加一些工具提示到matplotlib pdf文件。为了做到这一点,我使用的是pgf,所以我可以在序言中添加“pdf注释”。但是,当我在序言中添加pdf注释时,我会得到一个空白的额外页面。其他包,如xcolor和hyperref (例如),则不会出现这种情况。
下面是用于测试的代码,这是从这一讨论获得的
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.use("pgf")
pgf_with_pdflatex = {
"pgf.texsystem": "pdflatex",
"pgf.preamble": r"\usepackage{pdfcomment}",
}
mpl.rcParams.update(pgf_with_pdflatex)
fig = plt.figure(figsize=(4.5,2.5))
for i in range(5):
plt.text(i,i,r"\pdftooltip{\rule{0.3cm}{0.3cm}}{(%d,%d)}" % (i,i))
plt.plot(range(5), linewidth = 10)
plt.savefig("tooltips.pdf")
plt.close()这是可行的,只是它会产生额外的页面。下面是一个简约版本,它再现了这个问题。
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.use("pgf")
mpl.rcParams["pgf.texsystem"] = "pdflatex"
#mpl.rcParams["pgf.preamble"] = r"\usepackage{pdfcomment}" # uncomment to get blank page
plt.plot(range(5), linewidth = 10)
plt.savefig("tooltips.pdf")
plt.close()本质上,如果您取消注释这一行,您将得到一个额外的空白页作为输出,我不想要。下面是我得到的两个例子截图,一个带有额外的页面,另一个没有(我所更改的只是取消对行的注释)。


作为额外信息,我的pdflatex版本是:
pdfTeX 3.14159265-2.6-1.40.20 (TeX Live2019/Debian)
python3版本是:
Python 3.8.10
Matplotlib版本是:
3.3.2
请帮助,请仁慈,这是我第一次发布一个问题。
编辑:根据请求,下面是中间的LaTeX文件。这是一个pgf文件的形式,其中一个将包括在一个tex文档,我认为。我不知道如何直接获得.tex。
发布于 2022-08-24 21:31:22
不漂亮,但我想我在附近找到了一份工作。下面是修改后的最小版本,它只输出一个页面。基于samcarter_is_at_topanswers.xyz的注释,问题在于matplotlib而不是LaTeX,因此我只在脚本中包含了pdflatex调用。以下是最低工作版本:
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.use("pgf")
mpl.rcParams["pgf.texsystem"] = "pdflatex"
mpl.rcParams["pgf.preamble"] = r"\usepackage{pdfcomment}"
plt.plot(range(5), linewidth = 10, zorder = 10)
plt.savefig("tooltips.pgf")
plt.close()
import subprocess
with open("tooltips.tex", "w") as f:
f.write(r"""
\documentclass{standalone}
\usepackage{pgf}
\usepackage{pdfcomment}
\begin{document}
\input{tooltips.pgf}
\end{document}
""")
subprocess.run(["pdflatex", "tooltips.tex"])注意,matplotlib输出的是.pgf文件,而不是.pdf文件。
https://stackoverflow.com/questions/73447490
复制相似问题