子图字幕

子图字幕

我有一个figure带有多个的subfiguresfigure有一个\caption,这在 中很混乱List of Figures。我更喜欢\captions在每个 上都放\subfigures。我目前使用的代码是:

\begin{figure}[htpb]
  \centering
  \subfigure[]{
  \includegraphics[width=.45\columnwidth]{../Images/GloveOfDoom/RFIDTag_Testing_Side_s}
  }
  \caption{My caption!}
\end{figure}

这有效。但是,当我将 a 放在\caption任何 中时\subfigures,使用这个例子作为参考,我收到了错误:

\begin{figure}[htpb]
  \centering
  \subfigure[]{
      \caption{Subfloat caption dies with error.}
  \includegraphics[width=.45\columnwidth]{../Images/GloveOfDoom/RFIDTag_Testing_Side_s}
  }
  \caption{My caption!}
\end{figure} 

我收到的错误:

<../Images/GloveOfDoom/RFIDTag_Testing_Side_s.jpg, id=4, 520.94624pt x 347.2975
pt> <use ../Images/GloveOfDoom/RFIDTag_Testing_Side_s.jpg>
Overfull \hbox (7.1944pt too wide) in paragraph at lines 51--51
[]\OT1/cmr/m/n/9 () 
! Extra }, or forgotten \endgroup.
\@subfloat ...use {c@\@captype }\m@ne \fi \egroup 

l.51   }

! Extra }, or forgotten \endgroup.
\@endfloatbox ...pagefalse \outer@nobreak \egroup 
                                                  \color@endbox 
l.53 \end{figure}

! Too many }'s.
\color@endbox ->\color@endgroup \egroup 

l.53 \end{figure}


! LaTeX Error: \begin{document} ended by \end{figure}.

当我注释掉包含添加的行时\caption,一切都编译成功并且看起来正常。我该如何修复这个问题?我不知道在哪里查看,也不知道为什么会发生这种情况。

显示此错误的一个最小示例是:

% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
\documentclass[11pt]{report} % use larger type; default would be 10pt

%\usepackage{refcheck}
\usepackage[pdftex]{graphicx}
\usepackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)
\usepackage{array} % for better arrays (eg matrices) in maths
\usepackage{color}     % Colorize code listings
\usepackage{fixltx2e}
\usepackage{geometry} % to change the page dimensions
\usepackage{hyperref}
\usepackage{listings}  % Code listings
\usepackage{mathtools} % Math Equations
\usepackage{mdwlist}
\usepackage{paralist} % very flexible & customisable lists (eg. enumerate/itemize, etc.)
\usepackage{rotating}
\usepackage{setspace}
\usepackage{subfigure}
\geometry{a4paper} % or letterpaper (US) or a5paper or....
\linespread{1.5}

\begin{document}

\begin{figure}[htpb]
  \centering
  \subfigure[]{
      \caption{Subfloat caption dies with error.}
  \includegraphics[width=.45\columnwidth]{../Images/GloveOfDoom/RFIDTag_Testing_Side_s}
  }
  \caption{My caption!}
\end{figure}
}
\end{document}

答案1

您应该只使用一个figure环境:

\begin{figure}
\centering
\begin{minipage}[b]{.45\textwidth}
\includegraphics[width=\textwidth]{A}
\caption{First caption}\label{first}
\end{minipage}\hfill
\begin{minipage}[b]{.45\textwidth}
\includegraphics[width=\textwidth]{B}
\caption{Second caption}\label{second}
\end{minipage}
\end{figure}

水平对齐方式可以变化。如果两个字幕的行数不同,则垂直对齐方式可能会出现一些问题。

答案2

因此,您遇到的错误与我smallmatrix在 中使用环境时遇到的错误相同caption。构造图表列表的方法是使用

\caption[short text for the list]
  {complete description, that's 3 lines long below the image}

这也解决了内联数学的问题,即您只在第二个参数中使用内联数学。

查看您的软件包,您可能会考虑切换到subcaption,因为subfigure已经过时了,例如参见此处\subfigure 和 \subfloat 之间有什么区别?

相关内容