pgfplots,自定义图例和 tikz 库外部

pgfplots,自定义图例和 tikz 库外部

我尝试创建带有多个pgfplots子图的 Tikz 图形。我想为它们设置一个图例,因为它们都有相同的曲线。我从这个问题我可以标记并引用每条曲线。我用它在子图的底部创建了简单的图例。当我尝试将其作为单独的文件时,它看起来很好。然后我把它放在我的论文中,我使用 Tikzexternal库解决了我之前遇到的 TeX 内存问题,因为我有很多图。发生的问题可以通过这个 MWE 重现:

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{external}
\tikzexternalize
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot coordinates { (0,0) (1,1) };\label{plot:p1}
\end{axis}
\node (A) at (1,-1) {\ref{plot:p1} Plot 1};
\end{tikzpicture}
\end{document}

生成结果:

在此处输入图片描述

代替:

在此处输入图片描述

(为了简单起见,我在这里只使用一个图而不是子图)。请注意第一幅图中缺少引用的问号。当然,如果我注释掉第 4 行(不使用 externalize),引用就会正常显示(第二幅图)。所以我想知道:

我如何获得参考并仍然使用外部化?

附注:Ubuntu 11.10 上的 TexLive 2011

答案1

正如 Ignasi 在评论中所说,这并不能完全自动地发挥作用。

来自pgfplots 手册

\label如果将/\ref绘制为 , 则只有一种特殊情况tikzpicture。例如,图例\ref 图像或特征就是这种情况\pgfplotslegendfromname。在这种情况下,您需要按照情况 a) 进行操作,因为mode=convert with system call无法自行处理这些内容。

案例 a) 建议

考虑使用mode=list and make或复制粘贴图像的系统调用并手动发出。

如果我添加,您的示例对我有用

\pgfkeys{
    /tikz/external/mode=list and make
}

到文件并make -B -f <filename>.makefile在第一次编译运行后运行。

相关内容