我的文档中有一个表格,其代码如下:
\onecolumn
\begin{table}[b]
\centering
\begin{tabular}{cccr}
\hline
\textbf{Hydrofob del} & \textbf{Hydrofil del} & \textbf{Samlet tensidstruktur} & \textbf{Tensidtype} \\ \hline
Alkylbenzen & \ce{--SO_3^-} & alkylbenzensulfonater & anionisk \\
\ce{CH_3[CH_2]_nCH_2}-- & --\ce{OSO_3^-} & alkylsulfater & anionisk \\
\ce{CH_3[CH_2]_nCH_2}-- & --\ce{COO^-} & sæber & anionisk \\
\ce{CH_3[CH_2]_nCH_2}-- & --\ce{[OCH_2CH_2]_mOSO^-} & alkoholethersulfater & anionisk \\
\ce{CH_3[CH_2]_nCH_2}-- & --\ce{CH(SO_3^-)C(O)OCH_3} & methylestersulfonater & anionisk \\
\ce{CH_3[CH_2]_nCH_2}-- & --\ce{[OCH_2CH_2]_mOH} & alkoholethoxylater & nonionisk \\
\ce{CH_3[CH_2]_nCH_2}-- & --\ce{N^+(CH_3)_2(CH_2} $\phi$) & alkylbenzyldimethylammonium & kationisk \\
\ce{CH_3[CH_2]_nCH_2}-- & --\ce{[NCH_3)_2]\rightarrow O} & alkyldimethylaminoxider & nonionisk \\
\ce{CH_3[CH_2]_nCH_2}-- & --\ce{N^+(CH_3)_2CH_2COO^-} & betainer & zwitterionisk \\ \hline
\end{tabular}
\caption{I denne tabel kan man se byggestenene for de vigtigste tensider i vaskemidler.}
\label{tab:vigtigste tensider}
\end{table}
现在的问题是,LaTeX 只会将表格置于新页面的中间。我只想将其置于双列页面的底部。
答案1
使用该multicol
包提供了一个更通用的解决方案,即使您想要在单个列中的内容只是文本,它也能起作用。
您的代码对我来说不容易编译,因为我不知道哪个包定义了 \ce 宏,或者这是一个自定义宏还是其他什么。所以我把它改成了数学,只是为了演示这个想法。我还添加了一些文本,这样在表格前面的两列中就会有内容。这会将表格放在与两列文本末尾相同的页面上,尽管我没有费心让它变得漂亮:
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\lipsum
\end{multicols}
\begin{table}[b]
\centering
\begin{tabular}{cccr}
\hline
\textbf{Hydrofob del} & \textbf{Hydrofil del} & \textbf{Samlet tensidstruktur} & \textbf{Tensidtype} \\ \hline
Alkylbenzen & ${CH_3[CH_2]_nCH_2}$ & alkylbenzensulfonater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & alkylsulfater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & sæber & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & alkoholethersulfater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & methylestersulfonater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & alkoholethoxylater & nonionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ $\phi$) & alkylbenzyldimethylammonium & kationisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}{\rightarrow O}$ & alkyldimethylaminoxider & nonionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & betainer & zwitterionisk \\ \hline
\end{tabular}
\caption{I denne tabel kan man se byggestenene for de vigtigste tensider i vaskemidler.}
\label{tab:vigtigste tensider}
\end{table}
% added to clarify what I say in the comment below - the end of this two-column environment
% ends up on the next page since the table above is placed at the bottom of the page on
% which this environment starts i.e. the table is at the bottom of the two-column page and
% not automatically pushed to the next one (it gets the position I'd expect if the text was
% set normally with no columns involved at all
\begin{multicols}{2}
\lipsum[1-2]
\end{multicols}
\end{document}
编辑:如果表格“属于文本”,正如 tohecz 在下面建议的那样,您可以通过在 multicols 环境中使用 table* 环境来解决问题。这会将表格推到下一页,因此需要将其包含在上一页的代码中。如果它需要位于包含两列文本的第一页的底部,您可以在 multicols 环境开始之前包含 table* 环境,这样就会得到正确的结果。但这一切都相当繁琐,因为您需要知道分页符的位置才能做到这一点。所以如果这是想要的,这不是一个好的答案。如果是这样,我会删除这个答案。暂时离开,以防它有任何用处。
编辑2:我的意思是,您可以执行以下操作:
如果希望第一页底部的表格包含多列文本:
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\begin{document}
\begin{table*}[b]
\centering
\begin{tabular}{cccr}
\hline
\textbf{Hydrofob del} & \textbf{Hydrofil del} & \textbf{Samlet tensidstruktur} & \textbf{Tensidtype} \\ \hline
Alkylbenzen & ${CH_3[CH_2]_nCH_2}$ & alkylbenzensulfonater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & alkylsulfater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & sæber & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & alkoholethersulfater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & methylestersulfonater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & alkoholethoxylater & nonionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ $\phi$) & alkylbenzyldimethylammonium & kationisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}{\rightarrow O}$ & alkyldimethylaminoxider & nonionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & betainer & zwitterionisk \\ \hline
\end{tabular}
\caption{I denne tabel kan man se byggestenene for de vigtigste tensider i vaskemidler.}
\label{tab:vigtigste tensider}
\end{table*}
\begin{multicols}{2}
\lipsum[1-5]
\end{multicols}
\end{document}
如果您希望它出现在第二页的底部,请将其包含在第一页的文本中,在 multicols 环境中:
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\begin{table*}[b]
\centering
\begin{tabular}{cccr}
\hline
\textbf{Hydrofob del} & \textbf{Hydrofil del} & \textbf{Samlet tensidstruktur} & \textbf{Tensidtype} \\ \hline
Alkylbenzen & ${CH_3[CH_2]_nCH_2}$ & alkylbenzensulfonater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & alkylsulfater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & sæber & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & alkoholethersulfater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & methylestersulfonater & anionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & alkoholethoxylater & nonionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ $\phi$) & alkylbenzyldimethylammonium & kationisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}{\rightarrow O}$ & alkyldimethylaminoxider & nonionisk \\
${CH_3[CH_2]_nCH_2}$-- & --${CH_3[CH_2]_nCH_2}$ & betainer & zwitterionisk \\ \hline
\end{tabular}
\caption{I denne tabel kan man se byggestenene for de vigtigste tensider i vaskemidler.}
\label{tab:vigtigste tensider}
\end{table*}
\lipsum[1-10]
\end{multicols}
\end{document}
编辑 3:请注意,multicol 确实支持宽的浮动。它不支持窄浮动。也就是说,它不支持应该出现在列内的浮动 - 只支持页面宽度的浮动。
答案2
现在我知道我该怎么做了。我只是在图上加了一颗星:\begin{figure*}
和\end{figure*}
。当然,我删除了\onecolumn
。