Как определить, является ли следующий символ ^?

Как определить, является ли следующий символ ^?

Как мне это сделать? Использование \@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

Связанный контент