自己给一个基于kayval
的解答。
\documentclass[12pt]{ctexart}
\usepackage[margin=1in]{geometry}
\setlength{\parindent}{0pt}
\usepackage{keyval}
\makeatletter
\def\mwe@vala{defaulta}
\define@key{mwe}{opa}{\def\mwe@vala{#1}}
\def\mwe@valb{defaultb}
\define@key{mwe}{opb}{\def\mwe@valb{#1}}
\newcommand\foo[2][]{
\begingroup
\setkeys{mwe}{#1}%
The opa is: \mwe@vala. \par
The opb is: \mwe@valb. \par
The Parameter is: #2. \par
\endgroup
}
\makeatother
\begin{document}
\foo{Explorer}
\foo[opa=opa,opb=opb]{Explorer}
\foo[opb=opb]{Explorer}
\foo[opa=opa]{Explorer}
\end{document}
问 xparse处理多个连续的optional arguments