Controlling subfigure captions and subfigure placement
The optional argument for the subfigure
environment provides the placement of the sub-caption anchor. This is used to align the sub-captions vertically. Here is a visual:
\documentclass{article}
\usepackage{graphicx,subcaption}
\begin{document}
\begin{figure}
\centering
\texttt{subfigure} with \texttt{[t]}op alignment
\medskip
\begin{subfigure}[t]{.3\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-a}
\caption{This is a sub-caption. This is a sub-caption. This is a sub-caption}
\end{subfigure}
\begin{subfigure}[t]{.3\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-b}
\caption{This is a sub-caption.}
\end{subfigure}
\begin{subfigure}[t]{.3\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-c}
\caption{This is a sub-caption. This is a sub-caption.}
\end{subfigure}
\bigskip\hrulefill\bigskip
\texttt{subfigure} with \texttt{[c]}entre alignment (default)
\medskip
\begin{subfigure}{.3\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-a}
\caption{This is a sub-caption. This is a sub-caption. This is a sub-caption}
\end{subfigure}
\begin{subfigure}{.3\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-b}
\caption{This is a sub-caption.}
\end{subfigure}
\begin{subfigure}{.3\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-c}
\caption{This is a sub-caption. This is a sub-caption.}
\end{subfigure}
\bigskip\hrulefill\bigskip
\texttt{subfigure} with \texttt{[b]}ottom alignment
\medskip
\begin{subfigure}[b]{.3\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-a}
\caption{This is a sub-caption. This is a sub-caption. This is a sub-caption}
\end{subfigure}
\begin{subfigure}[b]{.3\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-b}
\caption{This is a sub-caption.}
\end{subfigure}
\begin{subfigure}[b]{.3\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-c}
\caption{This is a sub-caption. This is a sub-caption.}
\end{subfigure}
\end{figure}
\end{document}
So I'd use a [t]
op alignment. Additionally, you can spread out the figures using a number of options.
\documentclass{article}
\usepackage{graphicx,subcaption}
\usepackage[margin=1cm,showframe]{geometry}% Just for this example
\begin{document}
\begin{figure}
\centering
Fixed separation using \verb|\quad| (or \verb|\qquad|, or \verb|\hspace|)
\medskip
\begin{subfigure}[t]{.4\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-a}
\caption{This is a sub-caption. This is a sub-caption. This is a sub-caption}
\end{subfigure}\quad
\begin{subfigure}[t]{.4\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-b}
\caption{This is a sub-caption.}
\end{subfigure}
\bigskip\hrulefill\bigskip
Even spread via \verb|\hfill|
\medskip
\mbox{}\hfill
\begin{subfigure}[t]{.4\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-a}
\caption{This is a sub-caption. This is a sub-caption. This is a sub-caption}
\end{subfigure}\hfill
\begin{subfigure}[t]{.4\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-b}
\caption{This is a sub-caption.}
\end{subfigure}
\hfill\mbox{}
\bigskip\hrulefill\bigskip
Full spread via \verb|\hfill|
\medskip
\begin{subfigure}[t]{.4\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-a}
\caption{This is a sub-caption. This is a sub-caption. This is a sub-caption}
\end{subfigure}\hfill
\begin{subfigure}[t]{.4\linewidth}
\centering\includegraphics[width=.5\linewidth]{example-image-b}
\caption{This is a sub-caption.}
\end{subfigure}
\end{figure}
\end{document}
If your images have different vertical heights and you want to align those as well, you can raise content into place; the default alignment of images would be at the baseline:
\documentclass{article}
\usepackage{graphicx,subcaption}
\newsavebox{\imagebox}
\begin{document}
\begin{figure}
\centering
Default
\medskip
\begin{subfigure}[t]{.4\linewidth}
\centering\includegraphics[width=.5\linewidth,height=75pt]{example-image-a}
\caption{This is a sub-caption. This is a sub-caption. This is a sub-caption}
\end{subfigure}\qquad
\begin{subfigure}[t]{.4\linewidth}
\centering\includegraphics[width=.5\linewidth,height=5pc]{example-image-b}
\caption{This is a sub-caption.}
\end{subfigure}
\bigskip\hrulefill\bigskip
\verb|\raisebox| to vertical top
\medskip
% Store largest image in a box
\savebox{\imagebox}{\includegraphics[width=.2\linewidth,height=75pt]{example-image-a}}%
\begin{subfigure}[t]{.4\linewidth}
\centering\usebox{\imagebox}% Place largest image
\caption{This is a sub-caption. This is a sub-caption. This is a sub-caption}
\end{subfigure}\qquad
\begin{subfigure}[t]{.4\linewidth}
\centering\raisebox{\dimexpr\ht\imagebox-\height}{% Raise smaller image into place
\includegraphics[width=.5\linewidth,height=5pc]{example-image-b}}%
\caption{This is a sub-caption.}
\end{subfigure}
\bigskip\hrulefill\bigskip
\verb|\raisebox| to vertical centre
\medskip
% Store largest image in a box
\savebox{\imagebox}{\includegraphics[width=.2\linewidth,height=75pt]{example-image-a}}%
\begin{subfigure}[t]{.4\linewidth}
\centering\usebox{\imagebox}% Place largest image
\caption{This is a sub-caption. This is a sub-caption. This is a sub-caption}
\end{subfigure}\qquad
\begin{subfigure}[t]{.4\linewidth}
\centering\raisebox{\dimexpr.5\ht\imagebox-.5\height}{% Raise smaller image into place
\includegraphics[width=.5\linewidth,height=5pc]{example-image-b}}%
\caption{This is a sub-caption.}
\end{subfigure}
\end{figure}
\end{document}
Use the
subfigure
option[t]
instead of[b]
.To add some horizontal space between the figures, put
\quad
,\qquad
,\hfill
or some\hspace
command between thesubfigure
environments.
.
\documentclass{article}
\usepackage{graphicx, caption, subcaption}
\begin{document}
This article is about geometrical figures.
\begin{figure}
\begin{subfigure}[t]{0.4\textwidth}
\includegraphics[width=\textwidth]{example-image-a}
\caption{The rectangle is a complicated geometrical figure that has 4 edges and 4 vertices while a star is an even more complex geometrical figure}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.35\textwidth}
\includegraphics[width=\textwidth]{example-image-b}
\caption{A simple circle and a spiral}
\end{subfigure}
\caption{Geometrical figures}
\end{figure}
\end{document}