如果您使用命令将多行附加到表格,则如果该命令具有可选参数,它将停止工作。即使没有这些参数,它也可以工作:
\documentclass{standalone}
\newcommand{\mwe}[2][1]{ % remove [1]
\multicolumn{2}{l}{text}
}
\begin{document}
\begin{tabular}{ll}
\mwe[1]{1} % [1]->{1}
\end{tabular}
\end{document}
(最小工作示例,根据评论更改后即可工作)
错误:
Misplaced \omit
答案1
这是一个已知问题:\multicolumn
必须是单元格中的第一个对象(扩展宏之后),但带有可选参数的命令会在它之前放置一些内容。
使用xparse
。
\documentclass{standalone}
\usepackage{xparse}
\NewExpandableDocumentCommand{\mwe}{O{1}m}{%
\multicolumn{2}{l}{text}%
}
\begin{document}
\begin{tabular}{ll}
\mwe[1]{1} % [1]->{1}
\end{tabular}
\end{document}
只要参数列表以m
(强制参数)结尾,该命令就是完全可扩展的。