当文章中要制作跨栏表格时,latex如下:
文本1....
\begin{table*}[ht]
\centering
\caption{表格1}
\begin{tabular}{c||c c|c c|c c|c c c}
(表格内容)
\end{tabular}
\end{table*}
\begin{table*}[ht]
\centering
\caption{表格2}
\begin{tabular}{c||c c|c c|c c|c c c}
(表格内容)
\end{tabular}
\end{table*}
文本2....
但是表格1、2位置并不一定固定在文本1和文本2之间,甚至表格1和表格2并不会连续出现,可能表格1在一页,表格2在下一页。这时,我想要使表格1和表格2在同一页出现,并且尽量在文本1和文本2中间时,按照一般的方法(导入float包,并且将表格中的[ht]改为[H]),并不管用,并且表格会消失。
查阅网上的方法,大部分都是说导入stfloats包:\usepackage{stfloats},但是我试了之后也并不管用。我再问gpt,gpt提供了这个方法:
\usepackage{float} % 引入float包
\floatplacement{table}{H} % 设置默认的表格放置为H
对我的表格也是没有任何作用,但是后面它提供的另一个办法却很简单有效:
不用导入什么包,只需要ht前多加一个英文感叹号,也就是将\begin{table*}[ht]中的[ht]改为[!ht],即:
文本1....
\begin{table*}[!ht]
\centering
\caption{表格1}
\begin{tabular}{c||c c|c c|c c|c c c}
(表格内容)
\end{tabular}
\end{table*}
\begin{table*}[!ht]
\centering
\caption{表格2}
\begin{tabular}{c||c c|c c|c c|c c c}
(表格内容)
\end{tabular}
\end{table*}
文本2....
使用\begin{table*}[!ht]
来告诉LaTeX您希望它尽可能早地放置,"!
"在这里的作用是覆盖之前的浮动定位指令。