В настоящее время я пытаюсь сформировать фигуру с несколькими изображениями (см. прикрепленное изображение). Легко, я смог сделать часть с первыми тремя изображениями, но я не смог добавить четвертое изображение, которое является легендой, так, как я показал на прикрепленном изображении.
Не могли бы вы помочь?
\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 добавляет пространство между первым и вторым env. затем используйте \hfill
. Так что все выровнено, как и ожидалось. Однако, предположим, что вы хотите склеить два ящика. Следующий код оставит пустое пространство между ними
\begin{...}
...
\end{...}
\begin{...}
...
\end{...}
в то время как этот код не будет
\begin{...}
...
\end{...}% <--- no empty space added
\begin{...}
...
\end{...}
Кроме того, макросы без параметров, sa \hfill
, \cetering
используют пробелы, поэтому вышеизложенное %
не требуется. С другой стороны, если вы хотите принудительно вставить пробел после такого макроса, добавьте пустые скобки: {}
, например, \mymacro{}
вместо \mymacro
.