下面的代码描述了如下表格:
|_|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 放置tabular
在table
环境中,添加 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...