提供参数时的不同宏行为

提供参数时的不同宏行为

我想定义一个宏,调用它\func,这样\func就会输出\phi,并且\func[i]会输出\phi(i)

实现这一目标的最简单的方法是什么?

我知道还有其他问题可以解决这个问题 - 我想其中一个正是我的问题,但我只是不明白:)

答案1

您可以定义\func一个可选参数:

\documentclass{article}

\newcommand\func[1][]{\phi\ifx\\#1\\\else(#1)\fi}

\begin{document}

$\func\quad\func[i]$

\end{document}

在此处输入图片描述

答案2

xparse的解决方案

\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\func}{o}{%
  \phi
  \IfNoValueF{#1}{(#1)}%
}

\begin{document}

$\func\quad\func[i]$

\end{document}

您需要一个可选 (' o-type') 参数。

相关内容