
の\multicolumn
を使って作成されたマクロで を挿入しようとすると、エラーが発生します。 を使用して「同じ」コマンドを定義すると、すべて正常に動作します。xparse
\NewDocumentCommand
Misplaced \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}}