我想将四个数字放在一行中。我尝试使用的代码取自 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
由于所有四个subfigure
s 都必须出现在一行上,因此 s 的总宽度subfigure
不得超过\textwidth
;您可以.25\textwidth
对每个 s 使用(最多,如果它们都必须具有相同的宽度),subfigure
并确保它们之间没有虚假的空格(请注意%
前三\end{subfigure}
行之后的字符)。
下面你会发现两种使用每个图像的最大宽度的可能性subfigure
;在第一种情况下,图像的宽度等于其容器的宽度(并且图像之间没有空间);在第二种情况下,每个图像的宽度比容器的宽度略小,因此图像之间会有一些空气。
请注意,在第一种情况下,subfigure
s 占用了所有可用宽度,并且每个图像也占用了其容器内的所有可用宽度,因此无需\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\textwidth
X 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}