我遇到了一个问题,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 中缺失是你问题的根源)。