我有一些 PGF 文件格式的图表,其中包含交叉引用。每次我编译主文档时,这些图表也会重新编译。因此,我想将这些图表外部化。
问题是,如果通过独立类进行外部化,正如 Torbjørn T. 在这个回答中所述。,引用不再起作用。(还描述了独立类无法使用交叉引用的问题这里和这里,没有答案。)
这些图是通过 PGF 后端在 Matplotlib 中制作的。如何制作带有交叉引用的此类图的示例在这篇博文由 Matt Hancock 撰写,我将在此处添加该代码:
Matplotlib(Python)代码:
import numpy as np
import matplotlib as mpl
mpl.use('pgf')
pgf_with_custom_preamble = {
"text.usetex": True, # use inline math for ticks
"pgf.rcfonts": False, # don't setup fonts from rc parameters
"pgf.preamble": [
"\\usepackage{amsmath}", # load additional packages
]
}
mpl.rcParams.update(pgf_with_custom_preamble)
import matplotlib.pyplot as plt
plt.figure(figsize=(4,4))
plt.plot(np.random.randn(10), label="Equation \\eqref{eq:foo}")
plt.grid(ls=":")
plt.legend(loc=2)
plt.savefig("figure.pgf", bbox_inches="tight")
LaTeX 代码:
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{pgf}
\begin{document}
\begin{equation}
\label{eq:foo}
e^{i\pi} + 1 = 0
\end{equation}
\begin{figure}
\centering
\resizebox{3in}{3in}{
\input{figure.pgf}
}
\caption{This is the caption.}
\end{figure}
\end{document}
结果:
我怎样才能将该图形外部化,同时保持图中的交叉引用正常运作?