使用子图在一行上显示三幅图像

使用子图在一行上显示三幅图像

我正在尝试将 3 幅图像放入一行上的一个图形中。我已采用以下方法:

\documentclass[sigconf]{acmart}
\usepackage{subcaption}

\begin{document}

\begin{figure*}
  \begin{subfigure}{0.33\textwidth}
  \includegraphics[width=0.33\textwidth]{1}
  \caption{}
  \label{fig:3_classes}
  \end{subfigure}
  \begin{subfigure}{0.33\textwidth}
  \includegraphics[width=0.33\textwidth]{1}
  \caption{}
  \label{fig:5_classes}
  \end{subfigure}
    \begin{subfigure}{0.33\textwidth}
  \includegraphics[width=0.33\textwidth]{1}
  \caption{}
  \label{fig:6_classes}
  \end{subfigure}\par\medskip
    \caption{This is a test.}
\end{figure*}

\end{document}

图像 1.png 可在 onedrive 上找到:https://1drv.ms/u/s!AlkQuYgB1McYg8xUxUYxiZlhf9b6Ww

问题是我得到了以下结果。标题还可以,但图像真的很小,而且不知何故保持对齐。我希望图像尽可能大,以便它们可以放在一行上。

这可能吗?

在此处输入图片描述

答案1

通常,使用\linewidth来测量当前“块”的宽度比 更好\textwidth。虽然您认为\textwidth指的是文本块的整个宽度,因此0.33\textwidth应该指(大约)文本块的 1/3,但事实并非如此。在环境下subfigure\textwidth已更新(实际上是在 中设置其内容,这minipage会更新\textwidth),并不代表它最初的含义。您实际上正在查看宽度为 0.33 x 0.33 x\textwidth或大约为文本宽度的 1/10 的图像。

在此处输入图片描述

\documentclass[sigconf]{acmart}

\usepackage{subcaption}

\begin{document}

\begin{figure*}
  \begin{subfigure}{0.33\textwidth}
    \includegraphics[width=\linewidth]{example-image-a}
    \caption{}
    \label{fig:figure1}
  \end{subfigure}%
  \hfill
  \begin{subfigure}{0.33\textwidth}
    \includegraphics[width=\linewidth]{example-image-b}
    \caption{}
    \label{fig:figure2}
  \end{subfigure}%
  \hfill
  \begin{subfigure}{0.33\textwidth}
    \includegraphics[width=\linewidth]{example-image-c}
    \caption{}
    \label{fig:figure3}
  \end{subfigure}
  \caption{This is a test.}
\end{figure*}

\end{document}

相关内容