我尝试创建带有多个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
在第一次编译运行后运行。