¿Cómo se detecta si el siguiente carácter es ^?

¿Cómo se detecta si el siguiente carácter es ^?

¿Cómo hago esto? El uso \@ifnextchar^{command1}{command2}no funciona. ¿Qué debo hacer en su lugar para detectar ^?

ACTUALIZAR.Resultó que no había ningún problema con el comando, sólo un conflicto de nombres en otras partes de mis macrodefiniciones. ¡Gracias por la rápida reacción!

Respuesta1

Funciona con ^o con el 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}

ingrese la descripción de la imagen aquí

Respuesta2

El siguiente archivo de látex produce una salida de terminal de

yes
no

mostrando que \@ifnextcharha resultado verdadero ^y falso!

\makeatletter

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

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

\stop

información relacionada