매크로에서 표 형식의 셀 감싸기

매크로에서 표 형식의 셀 감싸기

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's \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}

관련 정보