参考带有 margincap 的 pgfplot

参考带有 margincap 的 pgfplot

我使用对pgfplots情节部分的引用,效果很好。但是,当我将文档更改为使用margincaps 时,这种情况就出现了:我收到一条警告,提示一个引用未定义,而第二个引用只是打印为空字符串,甚至没有警告。

\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}

在此处输入图片描述

我相信这就是人们想要的。如果看起来出乎意料,请告诉我。

相关内容