27

I want to use subfigures to place three figures like this:

one shape left two shapes right

The following is the code I used:

\begin{figure}
\begin{tabular}{|c|c|}
\hline
\multirow{2}{*}{
        \begin{subfigure}[h]{0.3\textwidth}
                \centering
                \includegraphics{Fig2}
                \caption{Argumentation Framework $I$}
                \label{fig:afexampleI}
        \end{subfigure}
               }
        &
         \begin{subfigure}[h]{0.6\textwidth}
             \centering
             \includegraphics{Fig3}
             \caption{Argumentation Framework $III$}
             \label{fig:afexampleIII}
         \end{subfigure} \\
        &
         \begin{subfigure}[h]{0.6\textwidth}
             \centering
             \includegraphics{Fig4}
             \caption{Argumentation Framework $II$}
             \label{fig:afexampleII}
         \end{subfigure} \\
\hline
\end{tabular}
\caption{Argumentation Frameworks}\label{fig:afexample}
\end{figure}

However, this is the result:

enter image description here

P.S. I used \hline in order to better illustrate the figures, otherwise there should be no borders for the tabular environment used.

1

4 Answers 4

25

To have three independent figures with the desired layout, you can use minipages:

\documentclass{article}
\usepackage[demo]{graphicx}

\begin{document}

\begin{figure}
\begin{minipage}[c][11cm][t]{.5\textwidth}
  \vspace*{\fill}
  \centering
  \includegraphics[width=5cm,height=10cm]{image1}
  \caption{test figure one}
  \label{fig:test1}
\end{minipage}%
\begin{minipage}[c][11cm][t]{.5\textwidth}
  \vspace*{\fill}
  \centering
  \includegraphics[width=5cm,height=4.5cm]{image1}
  \caption{test figure two}
  \label{fig:test2}\par\vfill
  \includegraphics[width=5cm,height=4.5cm]{image1}
  \caption{test figure three}
  \label{fig:test3}
\end{minipage}
\end{figure}

\end{document}

enter image description here

To have the three images as subfigures, you can simply replace \caption with \subcaption (from the subcaption package) in the previous code:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{caption,subcaption}

\begin{document}

\begin{figure}
\begin{minipage}[c][11cm][t]{.5\textwidth}
  \vspace*{\fill}
  \centering
  \includegraphics[width=5cm,height=10cm]{image1}
  \subcaption{test figure one}
  \label{fig:test1}
\end{minipage}%
\begin{minipage}[c][11cm][t]{.5\textwidth}
  \vspace*{\fill}
  \centering
  \includegraphics[width=5cm,height=4.5cm]{image1}
  \subcaption{test figure two}
  \label{fig:test2}\par\vfill
  \includegraphics[width=5cm,height=4.5cm]{image1}
  \subcaption{test figure three}
  \label{fig:test3}
\end{minipage}
\end{figure}

\end{document}

enter image description here

The demo option for graphicx simply replaces actual figures with black rectangles; do not use that option in your actual document.

4
  • @JLDiaz: would it be possible to achieve this effect using tabular and subfigures?
    – Ali
    Aug 13, 2012 at 15:23
  • @Ali no need for tabular; in my previous code, simply use subfigure instead of minipage; see my updated answer. Aug 13, 2012 at 15:30
  • @GonzaloMedina I must confess that your solution using minipage was perfect. The updated solution leaves some white space above figure b. Thanks!
    – Ali
    Aug 13, 2012 at 15:53
  • @Ali then I guess I will edit my answer showing both alternatives ;-) Aug 13, 2012 at 15:56
9

A subfig solution:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{subfig}

\newsavebox{\bigleftbox}

\begin{document}

\begin{figure}
\centering
\sbox{\bigleftbox}{%
  \begin{minipage}[b]{.5\textwidth}
  \centering
  \vspace*{\fill}
  \subfloat[test figure one]
    {\includegraphics[width=5cm,height=10cm]{image1}\label{fig:test1}}
  \end{minipage}%
}\usebox{\bigleftbox}%
\begin{minipage}[b][\ht\bigleftbox][s]{.5\textwidth}
\centering
\subfloat[test figure two]
  {\includegraphics[width=5cm,height=4.5cm]{image1}\label{fig:test2}}

\vfill

\subfloat[test figure three]
  {\includegraphics[width=5cm,height=4.5cm]{image1}\label{fig:test3}}
\end{minipage}
\end{figure}

\end{document}

The big left subfigure is measured and typeset, so we can set the height of the right box to be exactly the same as the left box's.

enter image description here

3

You could also use minipages if you don't want to use subfigures, so the result looks more like the example in the question:

enter image description here

\documentclass{article}
\usepackage[demo]{graphicx}

\begin{document}

\begin{figure}[htbp]
\begin{minipage}{0.5\linewidth}
\centering
\includegraphics[width=5cm,height=10cm]{image1}
\caption{A Circle}
\label{fig:circle}
\end{minipage}%
\begin{minipage}{0.5\linewidth}
\centering
\includegraphics[width=5cm,height=4.5cm]{image1}
\caption{test subfigure two}
\label{fig:test2}\par \medskip \vfill
\includegraphics[width=5cm,height=4.5cm]{image1}
\caption{test subfigure three}
\label{fig:test3}
\end{minipage}
\end{figure}

\end{document}
2

With tabular + subcaption:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{caption,subcaption}
\begin{document}

\begin{figure}
\begin{tabular}[b]{p{5cm}}
 \includegraphics[width=5cm,height=10cm]{image1}\\     
 \subcaption{test figure one}
\end{tabular}
\begin{tabular}[b]{p{5cm}}
 \includegraphics[width=5cm,height=5cm]{image2}\\  
 \subcaption{test figure 2}\\     
 \includegraphics[width=5cm,height=5cm]{image1}\\     
 \subcaption{test figure three}
\end{tabular}
 \caption{figure}
\end{figure}

\end{document}

This yields:

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .