在宏中包装表格单元格

在宏中包装表格单元格

我想使用 memoir 的表格环境的列规范语法在宏中自动换行表格的单元格。这可能吗?我尝试了以下方法

\documentclass{memoir}
\newcommand\bracketit[1]{[#1]}
\begin{document}
\begin{tabular}{l>{\bracketit\bgroup}c<{\egroup}}
    1 & A \\
    2 & B \\
\end{tabular}
\end{document}

失败了

! Missing } inserted

我曾希望它相当于

\documentclass{memoir}
\newcommand\bracketit[1]{[#1]}
\begin{document}
\begin{tabular}{lc}
    1 & \bracketit{A} \\
    2 & \bracketit{B} \\
\end{tabular}
\end{document}

但无需输入。当然,使用简单的\bracketit,就不需要宏了,我可以直接插入括号。但是,我想要应用的宏并不那么简单,而且超出了我的掌控范围mhchem.sty\ce我尝试做的事情有可能吗?

答案1

这是可能的collcell包裹:

\documentclass{memoir}
\usepackage{collcell}
\newcommand\bracketit[1]{[#1]}
\begin{document}
  \begin{tabular}{l>{\collectcell\bracketit}c<{\endcollectcell}}
    1 & A \\
    2 & B \\
  \end{tabular}
\end{document}

相关内容