结果

结果

我怎样才能得到一个具有三个子图(每个子图都有自己的标题,例如(a)、(b)和(c))的图形(带有标题),其布局如下:有两列;第一列是单个子图,第二列由两个垂直堆叠的子图组成:

在此处输入图片描述

答案1

使用subcaptionminipages你可以实现这一点:

\documentclass[]{article}

\usepackage{subcaption}
\usepackage[]{graphicx}

\begin{document}
\begin{figure}% >>>
  \centering
  \begin{minipage}[t]{.45\linewidth}
    \subcaptionbox{text1}
      {\includegraphics[width=\linewidth]{example-image-duck}}%
  \end{minipage}%
  \hfill
  \begin{minipage}[b]{.45\linewidth}
    \subcaptionbox{text2}
      {\includegraphics[width=.5\linewidth]{example-image-duck}}
    \subcaptionbox{text3}
      {\includegraphics[width=.5\linewidth]{example-image-duck}}%
  \end{minipage}%
  \caption
    {%
      Caption.%
      \label{fig:caption}%
    }%
\end{figure}% <<<

\end{document}

在此处输入图片描述

使用该subfig软件包就像尝试阅读其手册一样:

\documentclass[]{article}

\usepackage{subfig}
\usepackage[]{graphicx}

\begin{document}
\begin{figure}% >>>
  \centering
  \begin{minipage}[t]{.45\linewidth}
    \subfloat[text1]
      {\includegraphics[width=\linewidth]{example-image-duck}}%
  \end{minipage}%
  \hfill
  \begin{minipage}[b]{.45\linewidth}
    \subfloat[text2]
      {\includegraphics[width=.5\linewidth]{example-image-duck}}\\
    \subfloat[text3]
      {\includegraphics[width=.5\linewidth]{example-image-duck}}%
  \end{minipage}%
  \caption
    {%
      Caption.%
      \label{fig:caption}%
    }%
\end{figure}% <<<

\end{document}

输出几乎相同。

答案2

使用更现代的subcaption软件包,您可以简单地嵌套subfigure高级布局,如下所示:

结果

在此处输入图片描述

代码

\documentclass[a4paper,12pt]{book}
\usepackage{subcaption}
\usepackage[]{graphicx}

\begin{document}
  \begin{figure}[th]
    \begin{subfigure}[b]{0.65\textwidth}
      \includegraphics[width=\textwidth]{test}
      \caption{1}
    \end{subfigure}
    \hfill  % NOTE1: hfill moves horizontally stacked objects as far apart as it can
    \begin{subfigure}[b]{0.32\textwidth}
      \begin{subfigure}[t]{\textwidth}
        \includegraphics[width=\textwidth]{test}
        \caption{2}
      \end{subfigure}
      % NOTE2: two empty lines = 1 linebreak


      \begin{subfigure}[b]{\textwidth}
        \includegraphics[width=\textwidth]{test}
        \caption{3}
      \end{subfigure}
    \end{subfigure}

    \caption{figure caption}
  \end{figure}
\end{document}

需要注意的几点

  1. 您可以通过多种方式强制换行(即移动到下一个“行”)。最简单的方法是添加两个空行。相反,您要小心不要在图形环境中插入随机空行。(例如,前几天,我浪费了一个小时调试这个确切的问题,因为我忘记了空行会插入行)。
  2. \hfill可用于水平分隔物体。
  3. 如果所有水平堆叠子图的总宽度超过\textwidth,它还会自动将内容移至下一行。如果你想使用超过\textwidth,你必须解决一个更复杂的问题(见这里)。

相关内容