额外的对齐标签已更改为 cr

额外的对齐标签已更改为 cr

我正在尝试创建一个表格,但出现了您在标题中看到的错误。

(最小)代码是:

\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}

在此处输入图片描述

相关内容