Como detectar se o próximo caractere é ^?

Como detectar se o próximo caractere é ^?

Como eu faço isso? O uso \@ifnextchar^{command1}{command2}não funciona. O que devo fazer para detectar ^?

ATUALIZAR.Acabou não havendo nenhum problema com o comando, apenas um conflito de nomes em outras partes das minhas macrodefinições. Obrigado pela reação rápida!

Responder1

Funciona com ^ou com o comando \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}

insira a descrição da imagem aqui

Responder2

O seguinte arquivo latex produz uma saída de terminal de

yes
no

mostrando que \@ifnextcharfoi testado verdadeiro ^e falso para!

\makeatletter

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

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

\stop

informação relacionada