![使用条件定义新命令](https://linux22.com/image/418022/%E4%BD%BF%E7%94%A8%E6%9D%A1%E4%BB%B6%E5%AE%9A%E4%B9%89%E6%96%B0%E5%91%BD%E4%BB%A4.png)
我想定义一个新命令(用于仅在数学模式下),其执行取决于给它的输入。具体来说,我想定义\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)}%
}
它基本上检查参数的第一个和最后一个字符是什么,如果它们是“(”和“)”,它将输出没有额外括号的参数。