LaTeX文档中一行内显示多个子图

23
我正在尝试在LaTeX文档中插入四个图像,但如果使用subfigure命令,则两个图像停留在第一行,而另外两个则移到第二行。就像这样: enter image description here 我尝试的另一种解决方案是使用minipage命令,但是minipage的问题是子图像得到正常的图像标题(如Figure 1),而我希望子图像标题为(a)。请参见以下图像: enter image description here 我更喜欢的是第二张图片的效果,但希望拥有类似于第一张图片的子图标题。
3个回答

54

你的图片太宽了,无法在一行中并排显示。如果多个子图片不能放在同一行中,latex会自动换行。你需要为每个包含的图形子图片指定宽度,使它们的总宽度小于\textwidth参数,例如:

\begin{figure}
    \centering
    \subfigure[]{\includegraphics[width=0.24\textwidth]{monalisa.jpg}} 
    \subfigure[]{\includegraphics[width=0.24\textwidth]{monalisa.jpg}} 
    \subfigure[]{\includegraphics[width=0.24\textwidth]{monalisa.jpg}}
    \subfigure[]{\includegraphics[width=0.24\textwidth]{monalisa.jpg}}
    \caption{(a) blah (b) blah (c) blah (d) blah}
    \label{fig:foobar}
\end{figure}

导致

enter image description here

如果你将宽度设置得太高,例如width=0.5\textwidth就会导致我认为是你的问题。

enter image description here


21
那个图像是什么? :-o - hola
12
莫娜丽莎与异形系列中的面抱怪 - vallentin
1
这会出现错误:非法的度量单位(插入了pt)。...宽度]{\includegraphics[]{name.png}} - develarist
3
@develarist,请检查您的导言区,确保您使用的是\usepackage{subfigure}而不是\usepackage{subcaption}。如果使用 subcaption,代码将会出现你描述的错误。更多细节请参见这里 - gehbiszumeis
1
我认为这个解决方案对subfigure的依赖是一个严重的缺点。Subfigure已经过时,主要是由于与hyperref的冲突。 - ckrk
显示剩余3条评论

6

虽然这个问题已经问了很久,但@gehbiszumeis提供的解决方案对我不起作用,我仍然得到了每个子图的正常图注。因此,如果还有人遇到与我相同的问题,请按照这里的教程进行操作:

\begin{figure}
\centering
\begin{subfigure}{.24\textwidth}
    \centering
    \includegraphics[width=.95\linewidth]{FIRST IMAGE}  
    \caption{}
    \label{SUBFIGURE LABEL 1}
\end{subfigure}
\begin{subfigure}{.24\textwidth}
    \centering
    \includegraphics[width=.95\linewidth]{SECOND IMAGE}  
    \caption{}
    \label{SUBFIGURE LABEL 2}
\end{subfigure}
\begin{subfigure}{.24\textwidth}
    \centering
    \includegraphics[width=.95\linewidth]{THIRD IMAGE}  
    \caption{}
    \label{SUBFIGURE LABEL 3}
\end{subfigure}
\begin{subfigure}{.24\textwidth}
    \centering
    \includegraphics[width=.95\linewidth]{FOURTH IMAGE}  
    \caption{}
    \label{SUBFIGURE LABEL 4}
\end{subfigure}
\caption{FIGURE CAPTION}
\label{FIGURE LABEL}
\end{figure}

2
如果有人无法理解子图的标题,比如(a)(b)(c)和(d),我也一样。一个解决方案是将“\subfigure[]”中的“[]”替换为“(a)”,就像这样:
\begin{figure}
  \centering
  
  \subfigure(a){\includegraphics[width=0.24\textwidth]{monalisa.jpg}} 
  \subfigure(b){\includegraphics[width=0.24\textwidth]{monalisa.jpg}} 
  \subfigure(c){\includegraphics[width=0.24\textwidth]{monalisa.jpg}}
  \subfigure(d){\includegraphics[width=0.24\textwidth]{monalisa.jpg}}

  \caption{(a) blah (b) blah (c) blah (d) blah}
 
\label{fig:foobar}
\end{figure}

example


请使用CodeBlocks。 - lunarfyre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接