如何检测下一个字符是否为 ^?

如何检测下一个字符是否为 ^?

我该怎么做?使用\@ifnextchar^{command1}{command2}不起作用。我应该怎么做才能检测 ^?

更新。事实证明,命令没有问题,只是我的宏定义中其他地方的名称有冲突。感谢您的快速反应!

答案1

它与^以下命令一起使用\sp

\documentclass{article}

\usepackage{amsmath}

\makeatletter
\newcommand{\foo}{%
  \@ifnextchar\sp{\cmdone}{\cmdtwo}
}

\newcommand{\cmdone}{\text{Is superscripted!}}
\newcommand{\cmdtwo}{\text{Is not superscripted!}}

\makeatother

\begin{document}

$\foo^2$

$\foo E=mc^2$
\end{document}

在此处输入图片描述

答案2

以下 latex 文件产生以下终端输出:

yes
no

表明\@ifnextchar已测试为真^,且为假!

\makeatletter

\@ifnextchar^{\typeout{yes}\@gobble}{\typeout{no}\@gobble}^

\@ifnextchar^{\typeout{yes}\@gobble}{\typeout{no}\@gobble}!

\stop

相关内容