到目前为止我的表格是这样的:
\documentclass{article}
\usepackage{capt-of}
\begin{document}
\begin{table}
\begin{minipage}[h!]{\linewidth}
\centering
\begin{tabular}{p{2cm}p{2cm}p{2cm}}
\hline
\rule{0pt}{8pt}
\textbf{column a} & \textbf{column b} & \textbf{column c} \\
\hline
\rule{0pt}{8pt}
text & text & text \\
\rule{0pt}{8pt}
text & text & text \\
\hline
\rule{0pt}{8pt}
text & text & text \\
\hline
\hline
\end{tabular}
\captionof{table}{text for the listing}{caption} \label{tab:table}
\end{minipage}
\end{table}
\end{document}
嗯,问题是,有些表格出现在标题上方。我的想法是将这些表格放在非浮动环境中。由于我有 60 多个图表和表格,所以我不想在 ortabular
环境中更改它们tabularx
。
有没有办法将一些图形或表格放在非浮动环境中,并将其余部分留在table
浮动环境中。
和:\captionof
....
并且它们需要编号=(
答案1
如果你希望混合使用浮动和非浮动figure
,table
那么你应该使用float
包裹的[H]
浮点说明符。这里有一个小例子:
\documentclass{article}
\usepackage[margin=1in]{geometry}% Just for this example
\usepackage{float,lipsum,graphicx}
\begin{document}
\lipsum[1]
\begin{figure}[H]% Non-floating figure float
\centering
\includegraphics[width = .7\linewidth, height = 50pt]{example-image-a}
\caption{A figure}
\end{figure}
\lipsum[2]
\begin{figure}[t]% Regular floating figure
\centering
\includegraphics[width = .7\linewidth, height = 50pt]{example-image-b}
\caption{Another figure}
\end{figure}
\lipsum[3]
\end{document}
以上适用于任何默认浮点数(figure
和table
,以及通过float
包定义的新浮点数)。此外,无需使用capt-of
因为浮子提供了足够的\caption
力。
上述示例还突出了将非浮动浮动与其他/常规浮动混合使用的问题之一。编号仍将起作用,但编号的视觉位置可能会混合(图 2 已浮动到页面顶部,在视觉上显示前非浮动的图 1(放置在[H]
ERE 处)。
答案2
有什么问题captionof
?只需将非浮动元素放入tabular
a 中minipage
并使用captionof
即可。也许我遗漏了什么?我目前正在文档中使用它,它运行良好。
\documentclass{article}
\usepackage{capt-of}
\begin{document}
\noindent\begin{minipage}{\textwidth}
\begin{tabular}{p{2cm}p{2cm}p{2cm}}
\hline
\rule{0pt}{8pt}
\textbf{column a} & \textbf{column b} & \textbf{column c} \\
\hline
\rule{0pt}{8pt}
text & text & text \\
\rule{0pt}{8pt}
text & text & text \\
\hline
\rule{0pt}{8pt}
text & text & text \\
\hline
\hline
\end{tabular}
\captionof{table}{text for the listing}{caption} \label{tab:table}
\end{minipage}
\end{document}