我目前正在编写一个包含大量图表的文档。我使用 pgfplots 绘制它们。这使用了大量资源。为了管理它,我使用了 TikZ 的外部化功能。
在文件中我的文章, 有:
\documentclass{article}
\usepackage{pgfplots}
\pgfrealjobname{myarticle}
\begin{document}
\begin{figure}[htbp]
\centering
\beginpgfgraphicnamed{myplot}
\begin{tikzpicture}
\begin{axis}
\addplot[mark=*,color=blue, solid] plot coordinates {
(0,0)
(0.5,1)
(1,2)
}; \label{myplotOne}
\end{axis}
\end{tikzpicture}
\endpgfgraphicnamed
\caption{A beautiful line: \ref{myplotOne}.}
\end{figure}
\end{document}
然后我用以下方法编译它:
pdflatex --jobname myplot myarticle
pdflatex myarticle
pdflatex myarticle
问题是它禁止我使用 pgfplots 的标签/引用机制。我知道 pgfplots 手册上有关于此内容的评论(第 4.4.2 节,第 30 页):“请注意,您不能将标签/引用机制与图像外化结合使用,因为这将(自然)导致未定义的引用。“
有没有办法欺骗 LaTeX/TikZ 以便将它们结合使用?也许通过将显示的参考资料存储在 pdf 文件中?
答案1
一般来说,您应该能够使用xr
允许引用其他 LaTeX 文档中的标签的包来执行此操作。
但是该pgfplot
软件包似乎现在可以开箱即用地做到这一点(手册 v1.4.1,第 241 节):
对外部文件中的标签和引用的支持外部库附带对外部文件内部的额外支持
\label
(\ref
以及通常将信息存储在 .aux 文件中的其他命令)。
您似乎使用了过时的版本。至少第 4.4.2 节第 30 页中提到的文本不在我的(新更新的)版本中。第 4.4.2 节在第 42 页,是关于“平滑图”的。
答案2
正如 Martin 所说,在较新版本的 pgfplots 中,这一限制已被取消:它提供了
\usepgfplotslibrary{external}
可以通过以下方式激活
\tikzexternalize
...
\begin{document}
...
当您输入时pdflatex -shell-escape <maindocument>
,(完整)文档中的所有图像将自动外部化;包括任何参考文献。
您可以在以下位置找到有关该过程的详细信息http://pgfplots.sourceforge.net/pgfplots.pdf 在“从其他格式导入/导出”部分。
sourceforge 页面还包含指向最新 pgfplots 稳定版本的链接(撰写本文时版本为 1.4.1)。
此致
基督教