\usepackage{makecell} 已声明,但 \makecell 未定义

\usepackage{makecell} 已声明,但 \makecell 未定义

我在序言中宣布:

...    
\usepackage{cite}
\usepackage{color}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{float}
\usepackage{array}
\usepackage{makecell}
\usepackage{multirow}

\newcolumntype{c}[1]{>{\centering\arraybackslash}p{#1}}
\captionsetup{justification=centering}

\renewcommand\theadalign{cc}
\renewcommand\theadfont{\bfseries}
\renewcommand\theadgape{\Gape[4pt]}
%\renewcommand\cellgape{\Gape[4pt]}

\newcommand{\todo}[1]{\textcolor{red}{#1}}
\newcommand{\new}[1]{\textcolor{blue}{#1}}
...

在 tex 文件中,我创建了一个表,例如:

\begin{table*}
\centering
\begin{tabular}{|c{13mm}|c{23mm}|c{15mm}|c{15mm}|c{15mm}|c{15mm}|c{15mm}|c{15mm}|c{15mm}|}
    \hline
    \multirow{2}{*}{Functionality} & \multirow{2}{*}{Message Field Type} & \multicolumn{6}{c{90mm}|}{\# of bits assigned to each field (‘b’ = message body, ‘h’ = message header, ‘v’ = variable size)} & \multirow{2}{*}{XXX} \\ 
    \cline{3-8}
    & & 1 & 1 & 1 & 1 & 1 & 1 & \\
    \hline
    1  & \makecell{Service\\ Type} & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
    \hline
    2  &  Target Address  & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
    \hline
    3  &  Version Info. & 1 & 1 & 1 & 1 & 1 & 1 & 1  \\
    \hline
    4  &  Return Code & 1 & 1 & 1 & 1 & 1 & 1 & 1  \\
    \hline
    5  &  Message Type (op-code) & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
    \hline
\end{tabular}
\caption{Semantics of Adaptation Probability Tree Nodes with Different Depths}
\label{table:adapt-prob-tree-semantics}
\end{table*}

\usepackage{makecell}在序言中声明过,但是当我\makecell{}在表中使用时,出现错误消息:

Undefined control sequence. \GenericError  ...                        

                                                   #4  \errhelp \@err@     ... l.10     1  & \makecell{Service\\ Type}
                                     & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\

有人知道我为什么会收到这个错误信息吗?

答案1

您观察到的错误消息源于您对新列类型的定义c,该定义干扰了已声明的具有相同名称的标准、水平居中的列类型。因此,将自定义列类型更改为例如C或任何其他与标准列类型无关的字母即可消除错误。

相关内容