多幅图像图形 - 一幅图形上有 3 幅大小相同的图像和 1 幅大小不同的图像

多幅图像图形 - 一幅图形上有 3 幅大小相同的图像和 1 幅大小不同的图像

目前,我正在尝试用多张图片组成一个图形(见附图)。我可以轻松地用前三张图片制作出部分,但无法添加第四张图片(即图例),就像我在附图中展示的那样。

你能帮忙吗?

所需图形的形成

\begin{figure}[H]
\centering
\begin{subfigure}{0.48\textwidth}
\centering
\includegraphics[width=\linewidth]{figures/image1.png}
\caption{image 1}
\label{image 1}
\end{subfigure}
\hfill
\begin{subfigure}{0.48\textwidth}
\centering
\includegraphics[width=\linewidth]{figures/image2.png}
\caption{image 2}
\label{image 2}
\end{subfigure}
\hfill
\begin{subfigure}{0.48\textwidth}
\centering
\includegraphics[width=\linewidth]{figures/image3.png}
\caption{image 3}
\label{image 3}
\end{subfigure}
\caption{Multiple images}
\label{Multiple images}
\end{figure}

答案1

为了将内容移到下方,您必须添加一个空行或在内容前面加上\par,这相当于空行。此外,如果您想控制垂直空间,您可以\parskip在图形环境中进行更改。请参阅下面的示例。

完整示例:

\documentclass{article}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{kantlipsum}

% \usepackage{showframe}
% \renewcommand*\ShowFrameLinethickness{0.2pt}
% \renewcommand*\ShowFrameColor{\color{blue}}


\begin{document}
\kant[1][1]

\begin{figure}[tbh]
    \setlength\parskip{\baselineskip}%
    \setkeys{Gin}{width=\linewidth}%
    \centering
    \begin{subfigure}{0.48\textwidth}
        \includegraphics{example-image}
        \caption{image 1}
        \label{image 1}
    \end{subfigure}%
    \hfill
    \begin{subfigure}{0.48\textwidth}
        \includegraphics{example-image}
        \caption{image 2}
        \label{image 2}
    \end{subfigure}

    \begin{subfigure}{0.48\textwidth}
        \includegraphics{example-image}
        \caption{image 3}
        \label{image 3}
    \end{subfigure}

    \includegraphics[width=0.75\linewidth, height=1cm]{example-image-a}
    \caption{Multiple images}
    \label{Multiple images}
\end{figure}

\kant[1][3]
\end{document}

在此处输入图片描述


编辑。几点说明

  • 您不需要\centering在每个subfigure环境内,因为图像跨越了其父框的整个宽度。
  • 该行\setkeys{Gin}{width=\linewidth}设置了每个后续图像的宽度,因此不必重复。
  • 虽然在这种情况下,视觉上没有什么区别,但要注意新行会增加一个水平空格,除非你用%

为了详细说明最后一点,请再次考虑你的例子:

\begin{...}
...
\end{...} <--- empty horizontal space 
\hfill
\begin{...}
...
\end{...}

LateX 在第一个和第二个环境之间添加空格。然后使用\hfill。所以一切都按预期对齐。但是,假设您想将两个框粘在一起。以下代码会在它们之间留下一个空白

\begin{...}
...
\end{...} 
\begin{...}
...
\end{...}

虽然此代码不会

\begin{...}
...
\end{...}% <--- no empty space added
\begin{...}
...
\end{...}

此外,无参数宏 sa\hfill\cetering占用空格,因此上述内容%不是必需的。另一方面,如果您想在此类宏后强制留出空格,请添加空括号:{},例如,\mymacro{}而不是\mymacro

相关内容