新命令导致未定义的控制序列

新命令导致未定义的控制序列

我想创建一个新命令来设置列颜色,但它导致以下错误:

! Undefined control sequence.
\redcolumn ->\columncolor 
                          {red}
l.10 A & B
           \\

我不知道是不是因为我正在调用一个带有参数的命令,还是因为我试图调用新命令,但这是源代码:

\documentclass[letterpaper,20pt]{extarticle}
\usepackage[table,xcdraw]{xcolor}
\newcommand{\redcolumn}{\columncolor{red}}
\begin{document}
\begin{tabular}{l >{\columncolor{red}}l}
A & B \\
\end{tabular}

\begin{tabular}{l >{\redcolumn}l}
A & B \\
\end{tabular}

\end{document}

第一个表格使用\columncolor,并且成功了。第二个表格使用我的新命令,但失败了。我怎么误解了\newcommand

答案1

感谢 Jérôme 的评论,我找到了一个解决方案:使用\newcolumntype而不是\newcommand

\documentclass[letterpaper,20pt]{extarticle}
\usepackage[table,xcdraw]{xcolor}
\newcolumntype{R}{>{\columncolor{red}}l}
\begin{document}
\begin{tabular}{l >{\columncolor{red}}l}
A & B \\
\end{tabular}

\begin{tabular}{l R}
A & B \\
\end{tabular}

\end{document}

对于左对齐的列来说它可能有点奇怪R,但是它代表红色。

相关内容