桌子没有出现在书籍类别中

桌子没有出现在书籍类别中

我正在尝试将表格放入文档中,并使用书籍类。我有以下 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

问题是您不能在环境中使用浮点数(即tablefiguremulticols(事实上,如果您查看 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}

(注意:未经测试的代码)

相关内容