我正在尝试创建一个表格,但出现了您在标题中看到的错误。
(最小)代码是:
\begin{table}
\begin{center}
\begin{tabular}{%
|>{\centering}p{0.20\columnwidth}%
|>{\centering}p{0.19\columnwidth}%
|>{\centering}p{0.11\columnwidth}%
|>{\centering}p{0.17\columnwidth}%
|>{\centering}p{0.11\columnwidth}|}
\hline
a & b & c & d & e \\
a & b & c & d & e \\
\end{tabular}
\end{center}
\end{table}
列数没问题,行尾也...如果我在两行之间插入 \hline,也会得到
在这种情况下的错误是 Misplaced \noalign \hline
到目前为止,我可以通过使用不包含 >{\centering} 的最后一列来纠正它。
任何帮助都将不胜感激:-)
答案1
您必须使用\arraybackslash
最后一列:
|>{\centering\arraybackslash}p{0.11\columnwidth}|}
恢复\\
后\centering
.
代码:
\documentclass{article}
\usepackage{array}
\begin{document}
\begin{table}
\begin{center}
\begin{tabular}{%
|>{\centering}p{0.20\columnwidth}%
|>{\centering}p{0.19\columnwidth}%
|>{\centering}p{0.11\columnwidth}%
|>{\centering}p{0.17\columnwidth}%
|>{\centering\arraybackslash}p{0.11\columnwidth}|}
\hline
a & b & c & d & e \\
a & b & c & d & e
\end{tabular}
\end{center}
\end{table}
\end{document}
答案2
我建议您使用\newcolumntype
宏(由array
包提供)来定义一个新的列类型,例如,P
。这样,设置tabular
环境所需的代码可以大大简化。
\documentclass{article}
\usepackage{array} % for "\newcolumntype" macro
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1\columnwidth}}
\begin{document}
\begin{table}
\centering % better than "\begin{center}" and "\end{center}"
\begin{tabular}{|P{0.20}|P{0.19}|P{0.11}|P{0.17}|P{0.11}|}
\hline
a & b & c & d & e \\
a & b & c & d & e \\
\hline
\end{tabular}
\end{table}
\end{document}