我的第一个表格的最后一个单元格有什么问题?
此代码返回错误 \noalign。
\documentclass[a4paper,11pt]{article}
\usepackage{array}
\usepackage{tabularx}
\usepackage{multirow,multicol}
\usepackage{booktabs}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[htbp]\centering
\begin{tabularx}{\textwidth}{|C|>{\centering}m{1cm}|>{\centering}m{1cm}|>{\centering}m{1cm}|>{\centering}m{1cm}|>{\centering}m{1cm}|>{\centering}m{1cm}|}
\hline
& \multicolumn{6}{>{\centering}m{1cm}|}{Bla} \\ \cline{2-7}
& 1 & 2 & 3 & 4 & 5 & 6 \\ \hline
Activity 1 & x & & & & & \\ \hline
Activity 2 & & x & & & & \\ \hline
Activity 3 & & & x & x & x & \\ \hline
Activity 4 & & & & & x & x \\ \hline
\end{tabularx}
\end{table}
这个看起来不错,但是最后一列是不规则的:
\documentclass[a4paper,11pt]{article}
\usepackage{array}
\usepackage{tabularx}
\usepackage{multirow,multicol}
\usepackage{booktabs}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{table}[htbp]\centering
\begin{tabularx}{\textwidth}{|C|>{\centering}m{1cm}|>{\centering}m{1cm}|>{\centering}m{1cm}|>{\centering}m{1cm}|>{\centering}m{1cm}|c|}
\hline
& \multicolumn{6}{c|}{Bla} \\ \cline{2-7}
& 1 & 2 & 3 & 4 & 5 & 6 \\ \hline
Activity 1 & x & & & & & \\ \hline
Activity 2 & & x & & & & \\ \hline
Activity 3 & & & x & x & x & \\ \hline
Activity 4 & & & & & x & x \\ \hline
\end{tabularx}
\end{table}
\end{document}
谢谢!
答案1
当您遇到错误并忽略它时,即使您确实得到了一个文档,也不能指望输出是正确的。在这种情况下,错误消息报告“放错位置的 \noalign”,这通常意味着您试图插入比您指定的更多的列。
原因是您无法使用\\
来结束行,因为您已配置了表格。请使用\tabularnewline
或添加\arraybackslash
到相关列,就像您C
在序言中对规范所做的那样。
\documentclass[a4paper,11pt]{article}
\usepackage{array}
\usepackage{tabularx}
\usepackage{multirow,multicol}
\usepackage{booktabs}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[htbp]\centering
\begin{tabularx}{\textwidth}{|C|>{\centering\arraybackslash}m{1cm}|>{\centering\arraybackslash}m{1cm}|>{\centering\arraybackslash}m{1cm}|>{\centering\arraybackslash}m{1cm}|>{\centering\arraybackslash}m{1cm}|>{\centering\arraybackslash}m{1cm}|}
\hline
& \multicolumn{6}{>{\centering}m{1cm}|}{Bla} \\ \cline{2-7}
& 1 & 2 & 3 & 4 & 5 & 6 \\ \hline
Activity 1 & x & & & & & \\ \hline
Activity 2 & & x & & & & \\ \hline
Activity 3 & & & x & x & x & \\ \hline
Activity 4 & & & & & x & x \\ \hline
\end{tabularx}
\caption{Cronograma}
\end{table}
\end{document}
您需要\arraybackslash
在列规范中使用m
,原因与您在定义时需要它的原因相同C
,只是更重要,因为您实际上是想在其中一列中结束表格行m
。