pgfplots 手工制作的图例(\label + \ref)因自定义样式而失败

pgfplots 手工制作的图例(\label + \ref)因自定义样式而失败

在 中pgfplots,当我使用自定义样式绘制一条线,\label然后将该线\ref绘制到此图时,我无法获得所需的结果。

期望的结果是得到一条我正在使用的小线\ref

实际结果:

  • 在第一次编译时,我得到了LaTeX Warning: Reference 'plot:coor' on page 1 undefined on input line 11.,并且文本中的行被替换为??
  • 第二次编译失败! Package pgfkeys Error: I do not know the key '/tikz/custom' and I am going to ignore it. Perhaps you misspelled it.

我在用着:

  • pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011)
  • LaTeX2e <2011/06/27>
  • pgfplots 2011/07/29 v1.5 (git show 1.5-1-gcc2f2d2 )
  • tikz 2010/10/13 v2.10 (rcs-revision 1.76)

一个最小(不)工作示例:

\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[custom/.style={thick}]
\begin{axis}
\addplot[custom] coordinates {(0,0) (1,1) (2,3)};
\label{plot:coor}
\end{axis}
\end{tikzpicture}
This is \ref{plot:coor}.
\end{document}

如果我将自定义样式添加到axis-environment,问题仍然存在。如果我将复制thick到的参数中addplot,问题就会消失。但是,在我的实际情况中,我将类似的样式应用于四个不同的图,因此我想使用自定义样式。我的问题:

  • 这是一个错误吗?
  • 如果是,是否已知并且有解决方法?
  • 如果没有,我该如何\ref使用\label自定义样式创建的 ed 图?
  • 它为什么会有这样的表现?

相关但不同的问题:

答案1

如果我错了,请纠正我,但我想我已经意识到了我自己问题的答案。

\ref不起作用的原因是,当\ref调用时,内部定义的样式tikzpicture不再为人所知。要使其工作,请使用\pgfplotsset

\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\pgfplotsset{custom/.style={thick}}
\begin{tikzpicture}
\begin{axis}
\addplot[custom] coordinates {(0,0) (1,1) (2,3)};
\label{plot:coor}
\end{axis}
\end{tikzpicture} 
This is \ref{plot:coor}.
\end{document}

相关内容