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