“!放错\omit”错误

“!放错\omit”错误

下面的代码描述了如下表格:

|_|x x|x x|

|x|x|x|x|x|

|x|x|x|x|x|

在哪里

|_|= 空单元格,|x x|= multicolumn{2}|x|= 其中包含文本的单元格。

\begin{tabular}{c|c|c|c|c|}
\label{tlc}
\cline{2-5}
& \multicolumn{2}{|c}{1 Sec Trials} & \multicolumn{2}{|c|}{100 Sec Trials} \\
\hline
\multicolumn{1}{|c|}{Target Rate} & Mean & Std. Dev & Mean & Std. Dev \\
\hline
\multicolumn{1}{|r|}{1Hz} & 1.07 & 1.08 & 1.22 & 0.11 \\
\multicolumn{1}{|r|}{5Hz} & 4.71 & 2.09 & 4.51 & 0.21 \\
\multicolumn{1}{|r|}{10Hz} & 10.3 & 3.28  & 10.1 & 0.32 \\
\multicolumn{1}{|r|}{100Hz} & 93.6 & 9.91 & 94.6 & 0.97 \\
\hline
\end{tabular}

然而,当我运行它时,我收到一条错误消息

! Misplaced \omit.
\@cline #1-#2\@nil ->\omit
\@multicnt #1\advance \@multispan \m@ne \ifnum \@...
l.60 \cline{2-5}
I expect to see \omit only after tab marks or the \cr of
an alignment. Proceed, and I'll ignore this case.

我在 Google 上搜索了一下,似乎人们在嵌套时\multicolumns\multirows在启动之前将文本放入单元格时经常会遇到此类错误\multicolumn。但我的代码并非如此。

谁能告诉我发生了什么事?

答案1

您不能将 a\label作为单元格中的第一个元素。如果您有兴趣标记表格,请将 a 放置tabulartable环境中,添加 a\caption并将 a 放置在\label 它:

在此处输入图片描述

\documentclass{article}
\begin{document}
\begin{table}
  \centering
  \begin{tabular}{c|c|c|c|c|}
    \cline{2-5}
    & \multicolumn{2}{|c}{1 Sec Trials} & \multicolumn{2}{|c|}{100 Sec Trials} \\
    \hline
    \multicolumn{1}{|c|}{Target Rate} & Mean & Std. Dev & Mean & Std. Dev \\
    \hline
    \multicolumn{1}{|r|}{1Hz} & 1.07 & 1.08 & 1.22 & 0.11 \\
    \multicolumn{1}{|r|}{5Hz} & 4.71 & 2.09 & 4.51 & 0.21 \\
    \multicolumn{1}{|r|}{10Hz} & 10.3 & 3.28  & 10.1 & 0.32 \\
    \multicolumn{1}{|r|}{100Hz} & 93.6 & 9.91 & 94.6 & 0.97 \\
    \hline
  \end{tabular}
  \caption{Here is a caption}\label{tlc}
\end{table}
\end{document}

这里有一个booktabs替代你的tabular

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\begin{document}
\begin{table}
  \centering
  \begin{tabular}{r*{4}{c}}
    \toprule
    & \multicolumn{2}{c}{1 Sec Trials} & \multicolumn{2}{c}{100 Sec Trials} \\
    \cmidrule(lr){2-3} \cmidrule(lr){4-5}
    Target Rate & Mean & Std. Dev & Mean & Std. Dev \\
    \midrule
    1Hz & 1.07 & 1.08 & 1.22 & 0.11 \\
    5Hz & 4.71 & 2.09 & 4.51 & 0.21 \\
    10Hz & 10.3 & 3.28  & 10.1 & 0.32 \\
    100Hz & 93.6 & 9.91 & 94.6 & 0.97 \\
    \bottomrule
  \end{tabular}
  \caption{Here is a caption}\label{tlc}
\end{table}
\end{document}

答案2

我也使用该longtable环境并收到\omit错误消息。在我的例子中,我还在表格内容前面集成了标题/标签。通过在\\标签命令后集成,可以避免出现错误消息。

答案3

我也遇到了这个问题,我在尝试创建 MWE 时解决了它,所以我报告以供将来参考,也许这很简单,但有时当你有大表格时你可能会错过它。我想让第一行单元格加粗并居中,所以我尝试了:

    \documentclass{article}
    \begin{document}
    \newcommand{\myh}[1]{\textbf{\multicolumn{1}{c}{#1}}}

    \begin{tabular}{|ccccc|}
    \myh{99} & \myh{4} & \myh{3} & \myh{2} & \myh{1}\\
    \end{tabular}
    \end{document}

解决方案是:

    \newcommand{\myh}[1]{\multicolumn{1}{c}{\textbf{#1}}

即:在多列内格式化,而不是在多列外格式化。希望对您有所帮助。

答案4

确保你没有重新定义span!我有

\def\span#1{\ensuremath{\text{span}\left(#1\right)}}

在我的序言中。我花了很长时间才弄清楚。

对于需要知道如何在错误发生之前恢复 span 定义的人来说,

% store default def of span
\let\oldspan\span

% redefine span for using in the whole document
\def\span...

% before the blocks in which you need the default def of span
\let\span\oldspan

% blocks need default span

% redefine span for the whole doc
\def\span...

相关内容