newcommand 的可选参数?

newcommand 的可选参数?

可能重复:
带有和不带有可选参数的不同命令定义

我想定义一个宏,它接受一个可选参数,并根据是否给出可选参数以不同的方式运行。作为一个非常简单的例子,我想定义一个新的宏

\newcommand{\example}[0][]{macro definition}

输出

optional argument was omitted

如果省略可选参数,并且

optional argument was given

如果给出了可选参数。我该如何实现这一点?

答案1

\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{xifthen}

\newcommand{\test}[1][]{%
\ifthenelse{\equal{#1}{}}{omitted}{given}%
}

\begin{document}

The optional argument was \test[].

The optional argument was \test[shubidu].

\end{document}

其结果是

在此处输入图片描述

相关内容