\newcolumntype 中的 \shortstack

\newcolumntype 中的 \shortstack

我想要一种列类型,在每个单元格中添加特定的文本。

我正在考虑使用:

\newcolumntype{C}{>{\shortstack\bgroup extratext\\}c<{\egroup}}

我期望这会给我想要的结果,但它抱怨缺少 } 和 {。如果能解释为什么会发生这种情况,我将不胜感激。

梅威瑟:

\documentclass{article}
\usepackage{array}
\newcolumntype{C}{>{\shortstack\bgroup extratext\\}c<{\egroup}}
\begin{document}
    \begin{tabular}{CCC}
        a & b & c
    \end{tabular}
\end{document}

答案1

您不能通过将参数\shortstack括在\bgroup和之间来指定它\egroup。在某些情况下,这种方法有效或似乎有效,但只是偶然。

collcell可以这样做:如果你声明\usepackage{collcell},语法是

>{\collectcell\macro}c<{\endcollectcell}

完整示例:

\documentclass{article}
\usepackage{array,collcell}

\newcolumntype{C}{>{\collectcell\extratext}c<{\endcollectcell}}
\newcommand{\extratext}[1]{\shortstack{extratext\\#1}}

\begin{document}

\begin{tabular}{CCC}
a & b & c
\end{tabular}

\end{document}

在此处输入图片描述

相关内容