表格生成错误:!额外的对齐制表符已更改为 \cr

表格生成错误:!额外的对齐制表符已更改为 \cr

我收到此错误并且表无法生成。

\documentclass{IEEEtran}
\usepackage{booktabs, makecell, multirow, tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage[figuresright]{rotating}
\setlength{\rotFPtop}{0pt plus 1fil}
\renewcommand{\theadfont}{\footnotesize\bfseries}
\renewcommand\theadgape{}
\usepackage{lipsum}  % for dummy text filler
\begin{document}
\begin{table}
\centering
\caption{The consolidated accuracy of the system}
\label{tab:Precision}
\begin{tabular}{ >{\bfseries}c c c c l }
\toprule
\thead{Risk level} &\thead{Precision} & \thead{Recall} & \thead{f1-score} & \thead{Support}\\
    \midrule
  & High & .95 & .93 & 1.00 & 60\\
    \addlinespace
& Medium & .99 & .92 & .93 & 60\\
    \addlinespace
& Low & .95 & .99 & .96 & 60\\
    \addlinespace
& None & .99 & .95 & 1.00 & 60\\
    \bottomrule
\end{tabular}
\end{table}
\lipsum
\end{document} 

请帮忙。我也尝试过 tabularx 和 L 的组合,但没有成功。

答案1

该错误表明使用的列数超出了指定值。在您的案例中

\begin{tabular}{ >{\bfseries}c c c c l }

指定五列:四c列和一l列。在第一行中:

\thead{Risk level} &\thead{Precision} & \thead{Recall} & \thead{f1-score} & \thead{Support}\\

您确实在使用这五列。但其他所有列,例如:

  & High & .95 & .93 & 1.00 & 60\\

使用六列:第一列之前有一列空列&,其余五列为内容列。

因此,您要么必须再指定一列,要么删除除第一行之外每行的空列。查看内容,恕我直言,删除空列是最好的。此外,我建议对除第一列之外的所有列使用S包列siunitx

\documentclass{IEEEtran}
\usepackage{booktabs,makecell,siunitx}
\renewcommand{\theadfont}{\footnotesize\bfseries}
\usepackage{lipsum}  % for dummy text filler
\begin{document}
\begin{table}
\centering
\caption{The consolidated accuracy of the system}
\label{tab:Precision}
\begin{tabular}{>{\bfseries}c*4S}
\toprule
\thead{Risk level} & {\thead{Precision}} & {\thead{Recall}} & {\thead{f1-score}} & {\thead{Support}}\\
    \midrule
High & .95 & .93 & 1.00 & 60\\
    \addlinespace
Medium & .99 & .92 & .93 & 60\\
    \addlinespace
Low & .95 & .99 & .96 & 60\\
    \addlinespace
None & .99 & .95 & 1.00 & 60\\
    \bottomrule
\end{tabular}
\end{table}
\lipsum
\end{document} 

在此处输入图片描述

例如,对于最后一列,指定小数可能很有用。siunitx有关更多信息,请参阅手册。

相关内容