9

I'm trying to set up a main figure containing three sub figures. The idea is to split them in such way that it shows a two columns figure where the second column is made out of two sub figures located in a row configuration. This might be hard to imagine, but the idea is to get something like this:

enter image description here where each sub figure has its own label and caption.

My closest attempt consisted in an array/minipage configuration. This was:

 \documentclass[11pt,a4paper,oneside]{article}
    \usepackage{array}
    \usepackage{caption}
    \usepackage{subfigure}
    \begin{document}
        \begin{center}
\begin{figure}
\begin{array}{cc}
\multirow{2}{*}{
\begin{minipage}[b]{0.45\linewidth}
\centering
\includegraphics[scale=0.6]{smiley.eps}
\caption{Happy Smiley}
\label{fig:minipage1}
\end{minipage}} 
& 
\begin{minipage}[b]{0.45\linewidth}
\centering
\includegraphics[scale=0.3]{smiley.eps}
\caption{Happy Smiley}
\label{fig:minipage1}
\end{minipage}\\
&
\begin{minipage}[b]{0.45\linewidth}
\centering
\includegraphics[scale=0.3]{smiley.eps}
\caption{Happy Smiley}
\label{fig:minipage1}
\end{minipage}
\end{array}
\end{figure}
\end{center}
    \end{document}

but the result wasn't good. enter image description here

So, is this a right approach or should I try something different?

Thanks in advance.

3
  • 1
    Please help us to help you and add a minimal working example (MWE) that illustrates your problem. It will be much easier for us to reproduce your situation and find out what the issue is when we see compilable code, starting with \documentclass{...} and ending with \end{document}.
    – user31729
    Commented Sep 8, 2014 at 22:09
  • 1
    I think, you don't need a minipage at all. You could use \begin{tabular} instead of \begin{array} etc.
    – user31729
    Commented Sep 8, 2014 at 22:10
  • 2
    Off-topic comment: You have posted some questions, there are answers to it, but you have accepted none of them. Please appreciate the work of users here and accept one answer per question.
    – user31729
    Commented Sep 8, 2014 at 22:14

2 Answers 2

10

I understand that the three subfigures should be numbered a, b, and "c". This can be done with the help of the subcaption package.

The following is a mock-up of what's possible. Obviously, you'll need to decide things such as the relative widths of the subfigures.

enter image description here

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\begin{document}
\begin{figure}
%% left-hand side: a single subfigure
\begin{subfigure}{0.33\textwidth}
\includegraphics[width=\linewidth,height=4in]{fig1}
\caption{First subfigure} \label{subfig:left}
\end{subfigure}
%% horizontal separation between the left and right hand sides
\hspace*{\fill}
%% right-hand side: a minipage that contains two more subfigures
\begin{minipage}{0.64\textwidth}
\begin{subfigure}{\linewidth}
\includegraphics[width=\linewidth,height=1.75in]{fig2}
\caption{Second subfigure} \label{subfig:upper-right}
\end{subfigure}

\vspace*{0.6cm}
\begin{subfigure}{\linewidth}
\includegraphics[width=\linewidth,height=1.75in]{fig3}
\caption{Third subfigure} \label{subfig:lower-right}
\end{subfigure}
\end{minipage}

\caption{A complicated figure}
\end{figure}

A cross-reference to subfigure \ref{subfig:upper-right}.
\end{document}

Addendum: If you wanted to get the reverse layout, i.e., place the two stacked subfigures on the left and the single, tall subfigure on the right, all you'd have to do is exchange the order of the left- and right-hand groups of code in the example above.

2
  • Why not use two boxes and calculate the height to stretch both boxes to the maximum height of those two boxes, dynamically? You're using absolute dimensions here unnecessarily, or am I wrong here?
    – 1010011010
    Commented Sep 8, 2014 at 22:43
  • @1010011010 - Both the heights and the widths are purely illustrative as we don't the actual widths and heights of the real charts. The widths used in the MWE are relative; the heights are absolute and obviously entirely arbitrary. Do you have an alternative?
    – Mico
    Commented Sep 8, 2014 at 22:55
6

Following the idea of using minipages you can simply use two minipages as the two columns and in the right hand one include two images:

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

\begin{document}
\begin{figure}
    \centering
    \begin{minipage}[b]{0.45\linewidth}
        \centering
        \includegraphics[width=\textwidth,height=135pt]{image1}
        \caption{figure1}
    \end{minipage}
    \begin{minipage}[b]{0.45\linewidth}
        \centering
        \includegraphics[width=\textwidth,height=50pt]{image2}
        \caption{figure2}\par
        \vspace{\baselineskip}
        \includegraphics[width=\textwidth,height=50pt]{image3}
        \caption{figure3}
    \end{minipage}
\end{figure}
\end{document}

Or with only a single caption: \documentclass{article} \usepackage[demo]{graphicx} \usepackage{caption,subcaption}

\begin{document}
\begin{figure}
    \centering
    \begin{minipage}[b]{0.45\linewidth}
        \centering
        \includegraphics[width=\textwidth,height=106pt]{image1}
    \end{minipage}
    \begin{minipage}[b]{0.45\linewidth}
        \centering
        \includegraphics[width=\textwidth,height=50pt]{image2}\par\vspace{5pt}
        \includegraphics[width=\textwidth,height=50pt]{image3}
    \end{minipage}
    \caption{some black boxes}
\end{figure}

\end{document}
1
  • The \centering instructions inside the minipage environments aren't needed as the graphs take up the full widths.
    – Mico
    Commented Sep 8, 2014 at 22:36

You must log in to answer this question.

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