我正在尝试将表格放入文档中,并使用书籍类。我有以下 MWE:
\documentclass[a4 paper, 12pt]{book}
\usepackage{subcaption, bm, float, color}
%\usepackage[ inner =1.5in , outer =1in ]{ geometry }
\usepackage{multicol}
%\usepackage{tabularx}
\usepackage{booktabs} %for \toprule \midrule
\usepackage{float}
\restylefloat{table}
\usepackage{lipsum}
\begin{document}
\lipsum[1-2]
\begin{multicols}{2}
\begin{table}[h]
\begin{tabular}{|c | c | c | c |}
\toprule
x & y & w & z
\\
\midrule
a & b & abc & abc \\
a & b & abc & abc\\
\bottomrule
\end{tabular}
\caption{fancy caption 1}
\label{table 1 a}
\end{table}
\columnbreak
\begin{table}[h]
\begin{tabular}{|c | c | c | c |}
\toprule
x & y & w & z
\\
\midrule
a & b & abc & abc \\
a & b & abc & abc\\
\bottomrule
\end{tabular}
\caption{fancy caption 2}
\label{table 1 b}
\end{table}
\end{multicols}
\lipsum[1-4]
\end{document}
我尝试了很多方法,搜索了很多问题,比如这里,这里, 这里,这里,这里还有很多。
但对我来说什么都没用。文档中缺少表格。检查解决方案后,我至少编译了三次。请帮助我。提前致谢。
答案1
问题是您不能在环境中使用浮点数(即table
和figure
)multicols
(事实上,如果您查看 LaTeX 的日志输出,您应该会看到一个警告:
Floats and marginpars not allowed inside ‘multicols’ environment!
您可以使用table*
,figure*
但这multicols
可能不是您想要做的。
由于您正在使用该[h]
选项,table
因此您可以通过使用该captions
包并编写来获得您想要的内容,例如,
\begin{center}\begin{minipage}{\linewidth}\centering
\begin{tabular}{|c | c | c | c |}
\toprule
x & y & w & z
\\
\midrule
a & b & abc & abc \\
a & b & abc & abc\\
\bottomrule
\end{tabular}
\captionof{table}{fancy caption 2}
\label{table 1 b}
\end{minipage}\end{center}
环境minipage
的作用是确保tabular
和其标题不分离。它被封闭在center
环境中,因此被视为显示材料(否则它将获得段落缩进),然后 内部\centering
的作用minipage
是确保tabular
环境居中,因为外部center
环境不适用于minipage
。您可能希望将所有这些都包装在一个\newenvironment
定义中。
根据原始海报提供的更多信息进行更新
如果目标是将两个表格并排放置,则multicols
根本不需要环境。相反,您可以执行以下操作:
\begin{table}
\centering
\begin{minipage}{.45\linewidth}
\begin{tabular}{|c | c | c | c |}
\toprule
x & y & w & z
\\
\midrule
a & b & abc & abc \\
a & b & abc & abc\\
\bottomrule
\end{tabular}
\caption{fancy caption 1}
\label{table 1 a}\end{minipage}
\begin{minipage}{.45\linewidth}
\begin{tabular}{|c | c | c | c |}
\toprule
x & y & w & z
\\
\midrule
a & b & abc & abc \\
a & b & abc & abc\\
\bottomrule
\end{tabular}
\caption{fancy caption 2}
\label{table 1 b}
\end{minipage}
\end{table}
(注意:未经测试的代码)