使用子图将图像放在行中

使用子图将图像放在行中

我想将四个数字放在一行中。我尝试使用的代码取自 http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions

这会将三个图形放在一行中。当我添加第四个图形时,我会得到一行中的三张图片,最后一个出现在第二行中。但我希望它们都排在一行中。这是我的代码。

\documentclass[12pt,twoside]{report}% Use this line for the print version of the thesis


\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\begin{document}

\begin{figure}
        \centering
        \begin{subfigure}[b]{0.3\textwidth}
                \centering
                \includegraphics[width=\textwidth]{gull}
                \caption{A gull}
                \label{fig:gull}
        \end{subfigure}%


        \begin{subfigure}[b]{0.3\textwidth}
                \centering
                \includegraphics[width=\textwidth]{gull}
                \caption{A gull2}
                \label{fig:gull2}
        \end{subfigure}%

        ~ %add desired spacing between images, e. g. ~, \quad, \qquad etc.
          %(or a blank line to force the subfigure onto a new line)
        \begin{subfigure}[b]{0.3\textwidth}
                \centering
                \includegraphics[width=\textwidth]{tiger}
                \caption{A tiger}
                \label{fig:tiger}
        \end{subfigure}
        ~ %add desired spacing between images, e. g. ~, \quad, \qquad etc.
          %(or a blank line to force the subfigure onto a new line)
        \begin{subfigure}[b]{0.3\textwidth}
                \centering
                \includegraphics[width=\textwidth]{mouse}
                \caption{A mouse}
                \label{fig:mouse}
        \end{subfigure}
        \caption{Pictures of animals}\label{fig:animals}
\end{figure}
\end{document}

正如我上面提到的,它适用于三位数。但我不能将它用于四位数。我应该更改什么?

这是什么 width=\textwidth 意思?

我变了

\begin{subfigure}[b]{0.3\textwidth}

\begin{subfigure}[b]{0.2\textwidth}

但没有帮助。

然后我改变了

\includegraphics[width=\textwidth]{mouse}

\includegraphics[width=0.5\textwidth]{mouse}

仍然没有解决方案。

答案1

由于所有四个subfigures 都必须出现在一行上,因此 s 的总宽度subfigure不得超过\textwidth;您可以.25\textwidth对每个 s 使用(最多,如果它们都必须具有相同的宽度),subfigure并确保它们之间没有虚假的空格(请注意%前三\end{subfigure}行之后的字符)。

下面你会发现两种使用每个图像的最大宽度的可能性subfigure;在第一种情况下,图像的宽度等于其容器的宽度(并且图像之间没有空间);在第二种情况下,每个图像的宽度比容器的宽度略小,因此图像之间会有一些空气。

请注意,在第一种情况下,subfigures 占用了所有可用宽度,并且每个图像也占用了其容器内的所有可用宽度,因此无需\centering在那里使用。

\documentclass[12pt,twoside]{report}% Use this line for the print version of the thesis
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}

\begin{document}

\begin{figure}
        \begin{subfigure}[b]{0.25\textwidth}
                \includegraphics[width=\linewidth]{example-image-a}
                \caption{A gull}
                \label{fig:gull}
        \end{subfigure}%
        \begin{subfigure}[b]{0.25\textwidth}
                \includegraphics[width=\linewidth]{example-image-a}
                \caption{A gull2}
                \label{fig:gull2}
        \end{subfigure}%
        \begin{subfigure}[b]{0.25\textwidth}
                \includegraphics[width=\linewidth]{example-image-a}
                \caption{A tiger}
                \label{fig:tiger}
        \end{subfigure}%
        \begin{subfigure}[b]{0.25\textwidth}
                \includegraphics[width=\linewidth]{example-image-a}
                \caption{A mouse}
                \label{fig:mouse}
        \end{subfigure}
        \caption{Pictures of animals}\label{fig:animals}
\end{figure}

\begin{figure}
        \begin{subfigure}[b]{0.25\textwidth}
                \centering
                \includegraphics[width=.85\linewidth]{example-image-a}
                \caption{A gull}
                \label{fig:gull}
        \end{subfigure}%
        \begin{subfigure}[b]{0.25\textwidth}
                \centering
                \includegraphics[width=.85\linewidth]{example-image-a}
                \caption{A gull2}
                \label{fig:gull2}
        \end{subfigure}%
        \begin{subfigure}[b]{0.25\textwidth}
                \centering
                \includegraphics[width=.85\linewidth]{example-image-a}
                \caption{A tiger}
                \label{fig:tiger}
        \end{subfigure}%
        \begin{subfigure}[b]{0.25\textwidth}
                \centering
                \includegraphics[width=.85\linewidth]{example-image-a}
                \caption{A mouse}
                \label{fig:mouse}
        \end{subfigure}
        \caption{Pictures of animals}\label{fig:animals}
\end{figure}

\end{document}

在此处输入图片描述

当然,你不必给每个图形赋予subfigure的宽度.25\textwidth;你可以使用一个较小的值(在这种情况下,需要 \centering ),并且你可以使用一些空间(明确的空间,或\quad,或者更好的是\hfill)来分隔你的图形:

\documentclass[12pt,twoside]{report}% Use this line for the print version of the thesis
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}

\begin{document}

\begin{figure}
\centering
        \begin{subfigure}[b]{0.22\textwidth}
                \centering
                \includegraphics[width=\linewidth]{example-image-a}
                \caption{A gull}
                \label{fig:gull}
        \end{subfigure}\hfill
        \begin{subfigure}[b]{0.22\textwidth}
                \centering
                \includegraphics[width=\linewidth]{example-image-a}
                \caption{A gull2}
                \label{fig:gull2}
        \end{subfigure}\hfill
        \begin{subfigure}[b]{0.22\textwidth}
                \centering
                \includegraphics[width=\linewidth]{example-image-a}
                \caption{A tiger}
                \label{fig:tiger}
        \end{subfigure}\hfill
        \begin{subfigure}[b]{0.22\textwidth}
                \centering
                \includegraphics[width=\linewidth]{example-image-a}
                \caption{A mouse}
                \label{fig:mouse}
        \end{subfigure}
        \caption{Pictures of animals}\label{fig:animals}
\end{figure}

\end{document}

答案2

首先要注意的是,你的总宽度0.3\textwidthX 4 1.2\textwidth大于\textwidth。因此,在一行中容纳这些图像在物理上是不可能的。

此外,即使你将宽度减小到某个值(如)0.2\textwidth,它们仍然无法排成一行。这是由于你在图像之间插入了回车符。

因此,考虑到上述所有问题,您的代码将变成,

\begin{figure}
  \centering
  \begin{subfigure}[b]{0.20\textwidth}
    \centering
    \includegraphics[width=\textwidth]{gull}
    \caption{A gull}
    \label{fig:gull}
  \end{subfigure}
  \begin{subfigure}[b]{0.20\textwidth}
    \centering
    \includegraphics[width=\textwidth]{gull}
    \caption{A gull2}
    \label{fig:gull2}
  \end{subfigure}
  \begin{subfigure}[b]{0.20\textwidth}
    \centering
    \includegraphics[width=\textwidth]{tiger}
    \caption{A tiger}
    \label{fig:tiger}
  \end{subfigure}
  \begin{subfigure}[b]{0.20\textwidth}
    \centering
    \includegraphics[width=\textwidth]{mouse}
    \caption{A mouse}
    \label{fig:mouse}
  \end{subfigure}
  \caption{Pictures of animals}\label{fig:animals}
\end{figure}

并且图像可以很好地显示在一行中。

在此处输入图片描述

就我而言,我有时会将一行的图片放在一个表格行中。这只是为了更好地控制展示位置。但你是否决定这样做取决于你的个人选择。如果你决定使用这个,代码是,

\begin{figure}
  \centering
  \begin{tabular}[c]{cccc}
    \begin{subfigure}[b]{0.20\textwidth}
      \includegraphics[width=\textwidth]{gull}
      \caption{A gull}
      \label{fig:gull}
    \end{subfigure}&
    \begin{subfigure}[b]{0.20\textwidth}
      \includegraphics[width=\textwidth]{gull}
      \caption{A gull2}
      \label{fig:gull2}
    \end{subfigure}&
    \begin{subfigure}[b]{0.20\textwidth}
      \includegraphics[width=\textwidth]{tiger}
      \caption{A tiger}
      \label{fig:tiger}
    \end{subfigure}&
    \begin{subfigure}[b]{0.20\textwidth}
      \includegraphics[width=\textwidth]{mouse}
      \caption{A mouse}
      \label{fig:mouse}
    \end{subfigure}
  \end{tabular}
  \caption{Pictures of animals}\label{fig:animals}
\end{figure}

图像的放置位置也会有所改善。随着时间的推移,您可能会希望拥有更多的控制权。

在此处输入图片描述

答案3

要将所有四个子图环境放在一行中(并且每个子图环境占据相同的宽度),您需要必须将它们的宽度设置为小于 的值0.25\textwidth。在下面的示例中,我使用了0.24\textwidth,并将子图之间的间距设置为\hspace{\fill},即最大可用量。如果您需要各个子图之间有更多空间,则应减小它们的整体宽度(例如,减小到0.21\textwidth)。

顺便说一句,由于图表占据了最大可用空间,因此\centering各个环境内不需要任何指令。同样,如果要使用文本块的整个宽度,则后面也不需要指令。subfigure\centering\begin{figure}

在此处输入图片描述

\documentclass[12pt,twoside]{report}
\usepackage[demo]{graphicx} % remove demo option for your production document
\usepackage{subcaption}     % subcaption automaticallz loads caption package
\begin{document}
\begin{figure}
        \begin{subfigure}[b]{0.24\textwidth}
                \includegraphics[width=\linewidth]{gull}
                \caption{A gull}
                \label{fig:gull}
        \end{subfigure}%
        \hspace{\fill}
        \begin{subfigure}[b]{0.24\textwidth}
                \includegraphics[width=\linewidth]{gull}
                \caption{A gull2}
                \label{fig:gull2}
        \end{subfigure}%
        \hspace{\fill}
        \begin{subfigure}[b]{0.24\textwidth}
                \includegraphics[width=\linewidth]{tiger}
                \caption{A tiger}
                \label{fig:tiger}
        \end{subfigure}%
        \hspace{\fill}
        \begin{subfigure}[b]{0.24\textwidth}
                \includegraphics[width=\linewidth]{mouse}
                \caption{A mouse}
                \label{fig:mouse}
        \end{subfigure}
        \caption{Pictures of animals}\label{fig:animals}
\end{figure}
\end{document} 

答案4

使用包来解决subfigure

\documentclass[]{article}
\usepackage{subfigure}
\usepackage{graphicx}

\begin{document}

\begin{figure}
\centering  
\subfigure[Subfigure a]{\includegraphics[width=0.45\linewidth]{example-image-a}}
\subfigure[Subfigure b]{\includegraphics[width=0.45\linewidth]{example-image-b}}
\subfigure[Subfigure c]{\includegraphics[width=0.45\linewidth]{example-image-c}}
\subfigure[Subfigure c]{\includegraphics[width=0.45\linewidth]{example-image-a}}
\caption{Subfigures}
\end{figure}

\end{document}

在此处输入图片描述

相关内容