[Tex/LaTex] Customizing caption in side-by-side figures

captionsfloatspositioning

How do I customize my caption that follows this article's setting of the captions on page 26. The following is my attempt to do that, but still doesn't work. Obviously, what I want to achieve is to put the figures' names in small letter/alphabet((a) and (b)) for each of the pictures and there is another global caption below them which is in number/figure. The provided link on the page 26 expresses this better.

\begin{figure}[!ht]
 \begin{minipage}{0.49\linewidth}
  \centerline{\includegraphics[scale=0.2]{figure/figA.png}}
  \caption{Figure on left side}\label{fig:figA}
 \end{minipage}
\hfill
 \begin{minipage}{0.49\linewidth}
  \centerline{\includegraphics[scale=0.2]{figure/figB.png}}
  \caption{Figure on right side}\label{fig:figB}
 \end{minipage}
\end{figure}

Or, am I using the wrong package?

Best Answer

You can solve your problem by loading the subcaption package. (The subcaption package is incompatible with packages that provide similar functionality, such as subfigure and subfloat. If you use subcaption, be sure not to load one of these competing packages as well.) The subcaption package provides the environments subfigure and subtable, which take as their argument the desired width of the sub-figure/table in question. In the Minimum Working Example (MWE) below, I've set this width to 0.49\linewidth, as you do in your example code. The MWE also illustrates how many may create cross-references to the entire float as well as to one or more of its components.

Note the use of the \centering commands inside the subfigure environments; it's preferable to use this command rather than \centerline. In addition, since I don't have access to the .png files you list in your code, I've loaded the graphicx package with the demo option -- this will create black "dummy" rectangles. In your "real" code, you should of course omit the demo option.

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\begin{document}
\begin{figure}[t]
\centering
   \begin{subfigure}{0.49\linewidth} \centering
     \includegraphics[scale=0.2]{figure/figA.png}
     \caption{Figure on left side}\label{fig:figA}
   \end{subfigure}
   \begin{subfigure}{0.49\linewidth} \centering
     \includegraphics[scale=0.2]{figure/figB.png}
     \caption{Figure on right side}\label{fig:figB}
   \end{subfigure}
\caption{Overall caption} \label{fig:twofigs}
\end{figure}

\noindent
Some cross-references: First, we refer to Figure~\ref{fig:twofigs}. 
Second, we can also refer to the component figures individually, 
viz., to Figures~\ref{fig:figA} and \ref{fig:figB}.
\end{document}

enter image description here

Addendum For more information on what the parameters \linewidth and \textwidth do, see this answer to a question that was posed some time ago, viz., Difference between \textwidth, \linewidth and \hsize.