我使用对pgfplots
情节部分的引用,效果很好。但是,当我将文档更改为使用margincap
s 时,这种情况就出现了:我收到一条警告,提示一个引用未定义,而第二个引用只是打印为空字符串,甚至没有警告。
\documentclass{article}
\usepackage{pgfplots}
\usepackage{mcaption}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{figure}
\begin{margincap} % <- comment me!
\begin{tikzpicture}
\begin{axis}
\addplot[mark=star,only marks] coordinates {(0, 0)};
\label{plt:a}
\addplot[only marks] coordinates {(1, 1)};
\label{plt:b}
\end{axis}
\end{tikzpicture}
\end{margincap} % <- comment me!
\end{figure}
`\ref{plt:a}', `\ref{plt:b}'
\end{document}
注释掉\begin{margincap}
及其对应的end
,一切又恢复正常了...不幸的是,我不知道如何解决这个问题。
答案1
正如 egreg 所说,这是mcaption
和之间的不兼容性pgfplots
。
您可能需要考虑以下解决方法:
`\pgfplotsplotfromname{plt:a}`, `\pgfplotsplotfromname{plt:b}'
而\ref{plt:a}...
不会像预期的那样产生小图像。
除了上述解决方法之外,我还添加了对 的支持,pgfplots
以便它可以与 一起使用mcaption
。 pgfplots 的更新版本得出以下解决方案:
\documentclass{article}
\usepackage{mcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\thispagestyle{empty}
\begin{figure}
\begin{margincap} % <- comment me!
\begin{tikzpicture}
\begin{axis}
\addplot[mark=star,only marks] coordinates {(0, 0)};
\label{plt:a}
\addplot[only marks] coordinates {(1, 1)};
\label{plt:b}
\end{axis}
\end{tikzpicture}
\label{X}
\caption{X}
\end{margincap} % <- comment me!
\end{figure}
`\ref{plt:a}', `\ref{plt:b}'
X = \ref{X}
\end{document}
我相信这就是人们想要的。如果看起来出乎意料,请告诉我。