# cannot use \caption under minipage

I am using following code to import two images next to each other. When \caption{} is used, LaTeX gives me error caption outside float.

\begin{minipage}{.5\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{fig1.eps}
\caption{text for fig1}
\label{fig:fig1}
\end{minipage}
\begin{minipage}{.5\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{fig2.eps}
\caption{text for fig2}
\label{fig:fig2}
\end{minipage}


When I remove the \caption from both places, the code compiles correctly.

\begin{minipage}{.5\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{fig1.eps}
\label{fig:fig1}
\end{minipage}
\begin{minipage}{.5\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{fig2.eps}
\label{fig:fig2}
\end{minipage}


But both the codes do not generate any label naming the figure. (something like Figure 21).

Am I missing anything?

To place a caption outside a floating environment, you can use \captionof from the capt-of or caption packages::

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}

\begin{document}

\noindent\begin{minipage}{.5\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{fig1.eps}
\captionof{figure}{Some figure}
\label{fig:fig1}
\end{minipage}%
\begin{minipage}{.5\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{fig2.eps}
\captionof{figure}{Some figure}
\label{fig:fig2}
\end{minipage}

\end{document}


Notice the \noindent and % character I added to prevent undesired spacing.

• The command captionof is provided by every KOMA class, the package capt-of and the package caption – Marco Daniel May 26 '12 at 14:03
• so I have to add a package using \usepackage{caption}? because as it is, it is giving undefined control sequence error. – maths-help-seeker May 26 '12 at 14:07
• @maths-help-seeker yes, either caption (as I did in my example) or capt-of . – Gonzalo Medina May 26 '12 at 14:08
• @maths-help-seeker: Yes, but you can only do that in the document preamble. See Documents with typical LaTeX errors. – Werner May 26 '12 at 14:09
• ok thanks! it worked. It is also now showing the labels. :) – maths-help-seeker May 26 '12 at 14:10

You can also wrap a figure environment around your minipage, that way you do not need to use captionof or capt-of:

\begin{figure}[!htbp]
\begin{minipage}{0.5\textwidth}
\centering
\includegraphics[width=\textwidth]{Images/img1.JPG}
\caption{cap1}
\label{fig:img1}
\end{minipage}\hfill
\begin{minipage}{0.5\textwidth}
\centering
\includegraphics[width=\textwidth]{Images/img2}
\caption{cap2}
\label{fig:img2}
\end{minipage}
\end{figure}

• But this will in general allow the unit to float (despite all your !h). – Andrew Swann Feb 1 '18 at 12:40
• @AndrewSwann true, my assumption was, that two images in one minipage are meant to work like one composed image, where floating may be accepted:) – Abdulkadir Eroglu Feb 2 '18 at 13:59
• using [H] with \begin{figure}[H] or \begin{table}[H] will resolve the floating issue (enabled with \usepackage{float} if I recall correctly) – Gene Burinsky Nov 1 '18 at 21:09