我有两张图片,我想将它们显示在同一页上。每张图片都应显示为单独的图片,并带有自己的标题。
我的问题是 LaTeX 有时会将图形放在单独的页面上。
我目前已通过\psfragfig
在同一环境中连续放置两个命令来实现此目的。这似乎是一种简单而成功的方法,但我想知道这样做figure
是否没有正确使用环境。我应该改用包吗?figure
subcaption
答案1
您正确地使用了figure
环境。环境只是一个浮动外壳,主要包含与图形相关的内容。当然,您可以在其中放置一个表格,但大多数人会包含一个图像和一些文本(以标题的形式)。如果您包含多个,则效果相同:
\begin{figure}[ht]
\centering
\includegraphics[<options>]{<image1>}
\caption{<caption1>}
\vspace*{\floatsep}% https://tex.stackexchange.com/q/26521/5764
\includegraphics[<options>]{<image2>}
\caption{<caption2>}
\end{figure}
这连续浮点之间的间隙是(谁)给的\floatsep
。
\subcaption
仅当您要说明的主要内容相同,但两个图略有不同时,才使用其中一个。因此,它们应该放在同一标题 ( \caption
) 之下/之上,但每个标题都有一个子编号 ( \subcaption
)。
答案2
要在同一个浮动图中放置两个图形和两个标题,您只需要在浮动图中包括两个图形和两个标题即可。就是这样:)
。请参阅 MWE。
如果您还想在figure
环境中包含一个表格(或一个图形table
),那么您可以使用caption
包广告\captionof
命令。
\documentclass[twocolumn]{article}
\usepackage{graphicx,mwe,caption,lipsum}
\begin{document}
\section{Cheking cross-references}
See figures \ref{a} and \ref{b} on the same float in page \pageref{a}. Figure \ref{c} is on page \pageref{c}. (All is correct).
\section{Dummy text}
\lipsum[1-2] % dummy text
\begin{figure}[t] %float with two figures
\centering
\includegraphics[width=.5\linewidth]{example-image-a}
\caption{Image A\label{a}}\bigskip
\includegraphics[width=.5\linewidth]{example-image-b}
\caption{Image B\label{b}}
\end{figure}
\lipsum[3-5]
% float in next page
\begin{figure}[b]
\centering
\includegraphics[width=.5\linewidth]{example-image-16x10}
\caption{Image C\label{c}}
\end{figure}
\lipsum[3-10]
\end{document}
编辑:与\vspace*{\floatsep}
Werner 的答案的间距比更正确\bigskip
。
如果您希望强制图形停留在同一页面但不在一起(例如,顶部和底部有两个浮动图形),那么您可以尝试使用浮动选项和/或放宽浮动惩罚来强制浮动位置。请参阅: