使用 >{\centering} 时放错 noalign

使用 >{\centering} 时放错 noalign

我有下面的代码,我想将列元素居中,因此我使用了 {||>{\centering}p{0.5\textwidth}||>{\centering}>p{0.3\textwidth}|},但是在使用 \hline 命令时出现“\misplaced noalign”错误。有什么想法如何修复该问题吗?

\begin{table}[h]
        \label{1}
        \begin{tabular}{|p{0.5\textwidth}|>p{0.3\textwidth}|}
            \hline
            \rowcolor{Gainsboro!60}
            Student Name &Student ID \myhash \\
            \hline
            & \\
            \hline
        \end{tabular}
\end{table}

答案1

为了使p类型列的内容水平居中,请使用\centering\arraybackslash而不是\centering。此外,为了使用语法>{...},您还必须加载array包。

因此,以下示例应该会给出您想要的结果:

\documentclass{article}
\usepackage{array}
\usepackage[table,svgnames]{xcolor}
\begin{document}

\begin{table}[h]
        \label{1}
        \begin{tabular}{|p{0.5\textwidth}|>{\centering\arraybackslash}p{0.3\textwidth}|}
            \hline
            \rowcolor{Gainsboro!60}
            Student Name &Student ID  \\
            \hline
            & \\
            \hline
        \end{tabular}
\end{table}
\end{document}

由于我假设学生姓名和他们的 ID 足够短,不需要在相应的表格单元格中换行,因此您也可以选择w加载包时可用的类型列array

\begin{tabular}{|wl{0.5\textwidth}|wc{0.3\textwidth}|}
    \hline
    \rowcolor{Gainsboro!60}
    Student Name &Student ID  \\
    \hline
    & \\
    \hline
\end{tabular}

如果你希望你的表格自动适应最宽内容的宽度而不添加额外的空白空间,你可以使用一个简单的

\begin{tabular}{|l|c|}

反而。

\label关于和 的使用 的注释table\label只有与相应的 和 结合使用时\caption,如果您以后想要引用表格,才真正有意义。(例如,如“有关概述,请参阅表 1”)。table只有当您希望表格浮动时,环境才有意义。如果您不想要这种行为,请不要使用table

相关内容