如何将三张图片放在一行

如何将三张图片放在一行

我写论文时使用 Overleaf。

我想把三张图片连在一起,但我做不到。

我正在使用这个代码

\begin{figure}[h]
   \begin{subfigure}{0.4\textwidth}
       \includegraphics[scale=0.3]{img/grafo1.png} 
       \caption{Grafo non orientato}
       \label{fig:subim1}
   \end{subfigure}
   
   \begin{subfigure}{0.4\textwidth}
       \includegraphics[scale=0.3]{img/grafo2.png}
       \caption{Grafo orientato}
       \label{fig:subim2}
   \end{subfigure}

   \begin{subfigure}{0.4\textwidth}
       \includegraphics[scale=0.3]{img/grafo3.png}
       \caption{Grafo orientato}
       \label{fig:subim3}
   \end{subfigure}

   \caption{Esempi di grafi}
   \label{fig:image2}
\end{figure}

但结果是这样的:

在此处输入图片描述

所有 3 张图片的尺寸均为 400x400。

我该如何解决?谢谢?

答案1

正如@Alan Munn 在他的评论中指出的那样,您的子图像环境太宽,无法容纳在一行中。尝试执行以下操作:

\documentclass{article}
\usepackage[demo]{graphicx} % in real document delete demo option
\usepackage{subcaption}

\begin{document}
\begin{figure}[ht] % <---
   \begin{subfigure}{0.32\textwidth}
       \includegraphics[width=\linewidth]{img/grafo1.png}
       \caption{Grafo non orientato}
       \label{fig:subim1}
   \end{subfigure}
\hfill % <--- 
   \begin{subfigure}{0.32\textwidth}
       \includegraphics[width=\linewidth]{img/grafo2.png}
       \caption{Grafo orientato}
       \label{fig:subim2}
   \end{subfigure}
\hfill % <---
   \begin{subfigure}{0.32\textwidth}
       \includegraphics[width=\linewidth]{img/grafo3.png}
       \caption{Grafo orientato}
       \label{fig:subim3}
   \end{subfigure}

   \caption{Esempi di grafi}
   \label{fig:image2}
\end{figure}
\end{document}

如您所见,在上面的 MWE 中,删除了图像之间的空行(这迫使下一个图像转到下一行),减小了尺寸,subfigures使得它们的总和小于 1,并且定义了图像的宽度等于subfugures 的宽度。

请始终提供完整的小文档(MWE:最小工作示例),以重现您的问题(正如我在上面建议的解决方案中所做的那样)。

在此处输入图片描述

相关内容