I found the following code some time ago and then it compiled without problems:
Code: Select all
\documentclass[a4paper,12pt]{article}
\usepackage{mathtools}
\makeatletter
\newcommand*{\textupperscript}[2]{%
\@textupperscript{\selectfont#1}{\selectfont#2}
}
\def\@textupperscript#1#2{%
{\m@th\ensuremath{%
^{\mbox{\fontsize\sf@size\z@#1}}
_{\mbox{\fontsize\sf@size\z@#2}}
}}
}
\def\@super{^}
\def\@sub{_}
\catcode`^\active
\catcode`_\active
\def\@super@sub#1_#2{\textbothscript{#1}{#2}}
\def\@sub@super#1^#2{\textbothscript{#2}{#1}}
\def\@@super#1{\@ifnextchar_{\@super@sub{#1}}{\textsuperscript{#1}}}
\def\@@sub#1{\@ifnextchar^{\@sub@super{#1}}{\textsubscript{#1}}}
\def^{\let\@next\relax\ifmmode\@super\else\let\@next\@@super\fi\@next}
\def_{\let\@next\relax\ifmmode\@sub\else\let\@next\@@sub\fi\@next}
\makeatother
\begin{document}
\noindent Something:
\begin{equation*}
\Psi\textupperscript{Horse}{Fish}(x)
\end{equation*}
\end{document}
Code: Select all
! Extra \else.
\@next #1#2#3#4->\ifx #2\@empty #4\else
\expandafter \@xnext #2\@@ #1#2#3\fi
l.25 \catcode`\noexpand\^^
A\the\catcode`\^^A\relax
Thank you in advance!