我正在使用pgfplots
来绘制图表memoir
。我对子图绘图有问题。
\documentclass{memoir}
\usepackage{pgfplots}
\usepackage{tikz}
\usepackage{subfigure}
\begin{document}
\begin{figure}
\centering
\subfigure{
\begin{tikzpicture}
\begin{axis}[grid=major,xmin=0,xmax=1,ymin=0,ymax=0.5]
\addplot[color=black] coordinates {
(0,0.2)
(0.5,0.2)
(1,0)
};
\end{axis}
\end{tikzpicture}}
\subfigure{
\begin{tikzpicture}
\begin{axis}[grid=major,xmin=0,xmax=1,ymin=0,ymax=0.5]
\addplot[color=black] coordinates {
(0,0.5)
(1,0)
};
\end{axis}
\end{tikzpicture}}
\end{figure}
\end{document}
但是代码无法编译成功。有人知道如何修改代码吗?
答案1
作为文档类,memoir
提供了创建子浮点数的功能。因此,使用也提供此功能的包可能会导致问题(一般来说)。以下是如何使用提供的接口获得所需结果memoir
:
\documentclass{memoir}% http://ctan.org/pkg/memoir
\usepackage{pgfplots,tikz}% http://ctan.org/pkg/{pgfplots,pgf}
\newsubfloat{figure}% Create subfloat in figure environment
\begin{document}
\begin{figure}
\centering
\subbottom[First]{%
\begin{tikzpicture}
\begin{axis}[grid=major,xmin=0,xmax=1,ymin=0,ymax=0.5]
\addplot[color=black] coordinates {
(0,0.2)
(0.5,0.2)
(1,0)
};
\end{axis}
\end{tikzpicture}}
\subbottom[Second]{%
\begin{tikzpicture}
\begin{axis}[grid=major,xmin=0,xmax=1,ymin=0,ymax=0.5]
\addplot[color=black] coordinates {
(0,0.5)
(1,0)
};
\end{axis}
\end{tikzpicture}}
\end{figure}
\end{document}
\newsubfloat{<fenv>}
创建适当的计数器/宏以允许内部的子浮点数<fenv>
。/然后用于包含带有底部/顶部标题的子浮点数\subbottom
。\subtop
如需了解更多详细信息,请阅读10.3 多个浮点数(第 177 页)和10.9 子字幕(第 194 页)或memoir
用户手册。
答案2
计数器\c@lofdepth
和\c@lotdepth
由 定义subfigure
,但已被 定义memoir
,这会导致错误。您可以在加载之前取消定义它们来修复它subfigure
:
\documentclass{memoir}
...
\makeatletter
\let\c@lofdepth\relax
\let\c@lotdepth\relax
\makeatother
\usepackage{subfigure}
顺便说一句,我建议使用较新的subfig
软件包,它来自同一作者,因为subfigure
已经过时了。另一个非常好的 subfigures 软件包是subcaption
。