![在同一页上显示带有标题和标签的表格和图形](https://linux22.com/image/267357/%E5%9C%A8%E5%90%8C%E4%B8%80%E9%A1%B5%E4%B8%8A%E6%98%BE%E7%A4%BA%E5%B8%A6%E6%9C%89%E6%A0%87%E9%A2%98%E5%92%8C%E6%A0%87%E7%AD%BE%E7%9A%84%E8%A1%A8%E6%A0%BC%E5%92%8C%E5%9B%BE%E5%BD%A2.png)
我想要的是:我需要一个表格和一个图形,让它们位于同一页上,同时保持标题和标签的功能齐全。表格和图形都需要有自己的标题和标签。
命令\afterpage
几乎让它工作(我发现将图表和表格合并在同一页上),但在文本中引用它们的标签不再起作用(无论我将\afterpage
环境放在哪里。如果有帮助的话,表格和图形加在一起几乎构成了整整一页。
答案1
为了保证它们保持在一起,可以使用其中一个minipage
(如果对象不必被视为浮动)或仅使用一图形和表格的浮动环境;然后可以在两种情况下使用\captionof
来自capt-of
(或者caption
) 包;下面的例子显示了两种可能性:
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{capt-of}
\begin{document}
\noindent\begin{minipage}{\linewidth}
\centering
\includegraphics[width=6cm]{examplefigure}
\captionof{figure}{Example figure caption (non-floating)}
\label{fig:examplenf}
\captionof{table}{Example Table (non-floating)}
\begin{tabular}{ll}
\hline
column1a & column2a \\
column1b & column2b \\
column1c & column2c \\
\hline
\end{tabular}
\label{tab:examplenf}
\end{minipage}
\begin{figure}
\centering
\includegraphics[width=6cm]{examplefigure}
\caption{Example figure caption (floating)}
\label{fig:examplefl}
\captionof{table}{Example Table (floating)}
\begin{tabular}{ll}
\hline
column1a & column2a \\
column1b & column2b \\
column1c & column2c \\
\hline
\end{tabular}
\label{tab:examplefl}
\end{figure}
\end{document}
答案2
我无法使用 @Gonzalo Medina 之前发布的解决方案来使字幕正常工作。具体来说,我的字幕格式如下:
\caption[short caption for table of contents]{long caption underneath figure}
该\captionof
命令不带短标题。使用时\caption
,我的表格被标记为图形标题。
我能够使用替代解决方案来解决问题,即使用该afterpage
包,如下所示:
\usepackage{afterpage}
\afterpage{
\begin{table}
\centering
\caption[short caption]{long caption}
\label{table_label}
\begin{tabular}{ll}
% table material
\end{tabular}
\end{table}
\begin{figure}
\begin{center}
\includegraphics[scale=0.5]{figure_file}
\caption[short caption]{long caption}
\label{figure_label}
\end{center}
\end{figure}
} % <-- last curly brace ends \afterpage environment
答案3
您可以通过使用选项在顶部设置一个浮点数[t]
,在底部设置另一个浮点数来实现这一点[b]
,如示例所示:
\begin{figure}[t]
\centering
\includegraphics[width=\textwidth]{examplefigure}
\caption{Example figure caption}
\label{fig:example}
\end{figure}
\begin{table}[b]
\caption{Example Table}
\begin{tabular}{ll}
hello & world\\
\end{tabular}
\label{tab:example}
\end{table}
或者,正如这两个问题所述:
float
您可以使用包和选项强制它们位于您想要的位置[H]
。但是,这并不可取。
答案4
您可以使用表格环境\caption{Caption of the figure}
,然后在下面放置您的表格并使用\captionof{table}{Caption of the table}
命令来获取表格。