xparse は \multicolumn を挿入できません

xparse は \multicolumn を挿入できません

\multicolumnを使って作成されたマクロで を挿入しようとすると、エラーが発生します。 を使用して「同じ」コマンドを定義すると、すべて正常に動作します。xparse\NewDocumentCommandMisplaced \omit\def

どうしてでしょうか? どうにかしてこれを回避できますか?

\documentclass{article}

\usepackage{xparse}

% This definition does not work.
\NewDocumentCommand\foo{}{%
 \multicolumn{1}{c}{asdf}%
}

% This one does.
%\def\foo{%
% \multicolumn{1}{c}{asdf}%
%}

\begin{document}

\begin{tabular}{ c }
  \foo
\end{tabular}

\end{document}

答え1

\multicolumnセル内の最初の項目である必要があります (マクロ展開後)。\NewDocumentCommandこれでは不可能です。

必要なのは

\NewExpandableDocumentCommand{\foo}{}{\multicolumn{1}{c}{asdf}}

関連情報