Well, 1.8\linewidth
is 80% too wide for the current block (which is .5\textwidth
wide), causing a problem. Try using only \linewidth
or at least some portion of it.
\documentclass{report}
\usepackage{graphicx,subcaption}
\begin{document}
\begin{figure}[ht]
\centering
\begin{subfigure}{\linewidth}
\centering
\includegraphics[width=.8\linewidth]{example-image-a}
\caption{Caption for image 1}
\end{subfigure}
\begin{subfigure}{\linewidth}
\centering
\includegraphics[width=.8\linewidth]{example-image-b}
\caption{Caption for image 2}
\end{subfigure}
\caption{A caption for both images}
\end{figure}
\end{document}
Remember that \linewidth
is a relative length. See Difference between \textwidth
, \linewidth
and \hsize
.
Many options are available for placing two figures side-by-side. See this question and the answers therein, for example.
Here is a solution using the the subfig
package:
\documentclass[12pt,a4paper]{article}
\usepackage[demo]{graphicx}
\usepackage[margin=1in,showframe]{geometry}
\usepackage{subfig}
\renewcommand{\thesubfigure}{Figure \arabic{subfigure}}
\captionsetup[subfigure]{labelformat=simple, labelsep=colon}
\begin{document}
\begin{figure}[!tbp]
\makebox[\textwidth][c]{%
\subfloat[Caption Figure 1]{\scalebox{1.7}{\includegraphics{fig4}}\label{fig:f4}}
\quad
\subfloat[Caption of Figure 2 which should be so long to se if the two captions are not equal in length]{\scalebox{1.7}{\includegraphics{fig5}}\label{fig:f5}}
}
\end{figure}
\end{document}
Details
First of all make sure the figures use the same font size, line widths, etc. as pointed out by @prettygully in a comment to see the solution work.
I used the [demo]
option for graphicx
to insert wide enough dummy figures, in your document, use the actual ones. Also, I used the geometry
package option [showframe]
to show how the figures are centered w.r.t. the page margins, in your real document, you don't need it.
Second, for placing figures side-by-side, you have several options each having it own pros and cons:
- Using
minipage
with the subcaption
package to add a caption to each minipage
- Using the
subfig
package which is options-rich and has a \captionsetup
command for easy control of the output.
- Using the
floatrow
package designed for these purposes
- Use the
captionof
command from the caption
/subcation
packages.
The first option (minipage
) requires manual width adjustments in addition to a much difficulty aligning the figures with different captions length.
The third option (floatrow
) has some limitations on caption setup
The fourth option has some cross-referencing problems
The second option is, IMHO, the best choice. It doesn't need manual width adjustments, where the natural width of the figures will be used and it works for figures of different widths and/or heights. Also, with \captionsetup
command we can control the caption appearance and it doesn't require the caption
package.
Third, for centering the two figures w.r.t. the page margins, we can use the \makebox
command from graphicx
. Essentially, \makebox[\textwidth]
makes the box only \textwidth
wide (whatever the actual width can be) which also avoids "Overfull hbox" errors. The second optional argument of \makebox
is used to align it in the center. I got the idea from an answer to this question.
Another option for the same purpose is using the adjustbox
package, which has many alignment options to be used.
Best Answer
Below is how to insert two figures. Pls adapt this as per your needs. You need
subcaption
package.Refer this for information about another method http://texblog.org/2011/05/24/placing-figures-side-by-side-subfig/
This is also similar to what you are looking for - how to put subfigures in several rows