Wie erkennt man, ob das nächste Zeichen ^ ist?

Wie erkennt man, ob das nächste Zeichen ^ ist?

Wie mache ich das? Die Verwendung \@ifnextchar^{command1}{command2}funktioniert nicht. Was soll ich stattdessen tun, um ^ zu erkennen?

AKTUALISIEREN.Es stellte sich heraus, dass es kein Problem mit dem Befehl gab, sondern nur einen Namenskonflikt an einer anderen Stelle in meinen Makrodefinitionen. Danke für die schnelle Reaktion!

Antwort1

Es funktioniert mit ^oder mit dem Befehl \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}

Bildbeschreibung hier eingeben

Antwort2

Die folgende Latex-Datei erzeugt eine Terminalausgabe von

yes
no

zeigt, dass für „true“ und für „false“ \@ifnextchargetestet wurde^!

\makeatletter

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

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

\stop

verwandte Informationen