我想定义一个新命令(用于仅在数学模式下),其执行取决于给它的输入。具体来说,我想定义\F
为
\newcommand{\F}[1]{F#1}
如果输入中的第一个字符(
是
\newcommand{\F}[1]{F(#1)}
如果输入中的第一个字符不是(
。
举个例子,我想\F{x}
输出F(x)
并\F{(x)}
输出F(x)
。
我不知道该怎么办。
答案1
答案2
您可以使用以下代码实现此目的:
\usepackage{xstring}
\usepackage{ifthen}
\newcommand{\F}[1]{
\StrLeft{#1}{1}[\firstletter]%
\StrRight{#1}{1}[\lastletter]%
\ifthenelse{\equal{(}{\firstletter} \AND \equal{)}{\lastletter}}{F#1}{F(#1)}%
}
它基本上检查参数的第一个和最后一个字符是什么,如果它们是“(”和“)”,它将输出没有额外括号的参数。