マクロで表のセルを折り返す

マクロで表のセルを折り返す

私は、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}

関連情報