莫名其妙的表格错误——“额外的对齐标签”,但我肯定有正确的#列;而且hbox也过满

莫名其妙的表格错误——“额外的对齐标签”,但我肯定有正确的#列;而且hbox也过满

我遇到了一个问题,LaTeX 无法接受表格的主标题行(下面第三行代码)。当我注释掉那一行时,它就可以正常工作了。这是我的表格的开头-

\begin{tabular}{r| >{\raggedleft}p{0.8cm} ||r|r| >{\raggedleft}p{0.8cm} || r|r| >{\raggedleft}p{0.8cm} |}
 & & \multicolumn{3}{c||}{Speaker A} & \multicolumn{3}{c}{Speaker B} \\ \hline
\small{Session-Part} & \small{Total length} & \small{Time} & \small{Time \%} & \small{DM rate} & \small{Time} & \small{Time \%} & \small{DM rate} \\
1-\textsc{chat} & 10:15 & 4:17 & 41.8\% &  & 4:38 & 45.2\% &  \\

我认为它不知何故没有记录换行符,并且我得到了一堆 overfull hbox 错误(它太长了吗?否则它似乎适合...)。如果我尝试在那里放置 \hline,它还会给我一个放错位置的 noalign 错误。否则,如果我尝试按此处的方式运行它,它会给我一个“额外对齐制表符”错误,因为第一个“&”下一个行,所以它认为我还没有结束行。我已经数过无数次列数,但我仍然不明白到底出了什么问题。这可能是多列格式的问题吗?同样,当我注释掉第二行标题时,它工作正常,所以 :/

答案1

我稍微修改了你的表格:(i)添加了新的列类型具有正确的定义(作为简化其输入的快捷方式),(ii)添加了新的命令\multicolumn和(iii)增加了表格的宽度(这会导致您的 MWE 警告bad box: 2。我还删除了错误使用\small宏的补救措施。我留下了水平线,因为它们在您的 MWE 中使用。

通过这种修改,我无法重现您的问题,也无法收到任何有关坏盒的警告:

\documentclass{article}
\usepackage{array}
\newcolumntype{P}[1]{>{\raggedleft\arraybackslash}p{#1}}
\newcommand\mcbf[2]{\multicolumn{#1}{c||}{\textbf{#2}}}

    \begin{document}
    \begin{center}\small
\begin{tabular}{r|P{1cm} ||r|r|P{0.8cm}||r|r|P{1cm}||}
\mcbf{2}{}
    & \mcbf{3}{Speaker A} & \mcbf{3}{Speaker B}    \\ 
    \hline
Session-Part 
    & Total length     & Time & Time \% & DM rate & Time & Time \% & DM rate \\
1-\textsc{chat} 
    & 10:15            & 4:17 & 41.8\%  &         & 4:38 & 45.2\%  &         \\ \hline   
\end{tabular}
    \end{center}
   \end{document}

我的修改和你的 MWE 之间的主要区别在于添加到了arraybackslash你的列定义中 p{...}。如果没有这个(在表格最后一列的列表中),会导致意外的问题——它在你的 MWE 中缺失是你问题的根源)。 在此处输入图片描述

相关内容