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