Undefinierte Steuersequenz: neu definierte Mathematik in der Überschrift

Undefinierte Steuersequenz: neu definierte Mathematik in der Überschrift

Wenn ich das Dokument mit diesem Code kompiliere:

\documentclass[final,3p,times]{elsarticle}

\usepackage{amsmath, amssymb, amsfonts, amsfonts, amsthm,latexsym}


\usepackage{enumerate}

\usepackage{mathtools} \usepackage[normalem]{ulem} \usepackage{scalerel}

\newcommand{\Ro}{\mathrel{\overset{0}{\sim}}}

\title{test}

\date{March 2020}


\usepackage{graphicx}

\begin{document}

\maketitle \section{test.\ $\Ro$}


\end{document}

Ich habe festgestellt, dass der Compiler Probleme hat, einen von mir definierten Befehl zu verstehen. Überprüfen Sie, ob der Befehl richtig geschrieben ist. Wenn der Befehl Teil eines Pakets ist, stellen Sie sicher, dass Sie das Paket mit in Ihre Präambel aufgenommen haben \usepackage{...}.

Auf overleaf.com und meinem PC funktioniert es nicht, auf meinem Laptop mit Ubuntu tritt jedoch kein Fehler auf.

Kann mir jemand sagen, wie ich dies vermeiden oder beheben kann?


aktualisieren:

Ich habe versucht, den Vorschlag anzunehmen, die Ladereihenfolge zu ändern. amssymbEs amsmathfunktioniert.

\documentclass[3p,times]{elsarticle}
\usepackage{amssymb,amsthm,amsmath}
\newcommand{\Ro}{\mathrel{\overset{0}{\sim}}}
\begin{document}
    \section{test.\ $\Ro$}

    \begin{proof}
        asfaag
    \end{proof}
\end{document}

Wenn ich jedoch alle meine Pakete hinzufüge, tritt das Problem erneut auf.

\documentclass[3p,times]{elsarticle}
\usepackage{amssymb,amsthm,amsmath}
\usepackage{algorithmic,algorithm}
\renewcommand{\algorithmiccomment}[1]{\hfill$\rhd∗$\textit{#1}}
\usepackage{graphics}
\usepackage{enumerate}
\usepackage{color}
\usepackage{mathtools}
\usepackage[normalem]{ulem}
\usepackage{scalerel}

\newcommand{\Ro}{\mathrel{\overset{0}{\sim}}}
\begin{document}
    \section{test.\ $\Ro$}

    \begin{proof}
        asfaag
    \end{proof}
\end{document}

Antwort1

Es ist eine ziemlich seltsame Interaktion mit scalerel. Ich kann das Verhalten mit einem einfacheren Beispiel reproduzieren:

\documentclass{article}
\usepackage{amsmath}
\usepackage{scalerel}

\newcommand{\Ro}{\mathrel{\overset{0}{\sim}}}

\begin{document}

\section{test.\ $\Ro$}

\end{document}

Das Problem verschwindet, wenn scalereles entfernt wird.

Lösung: Verwenden Sie

\DeclareRobustCommand{\Ro}{\overset{0}{\sim}}

(Ich habe es entfernt, \mathrelweil es nicht notwendig ist, da \simes sich um ein Relationssymbol handelt und \oversetes richtig erraten werden kann).

Antwort2

Vielen Dank für die Erstellung eines vollständigen MWE (Minimum Working Example). Ich konnte den Fehler sofort auf einer Vorabversion von MacTeX2020 reproduzieren. Konkret erhielt ich die folgende Nachrichtenfolge:

! Undefined control sequence.
\@tempa ->\catcode `\<
                      12\relax \catcode `\>12\relax \catcode `\=12\relax 
l.22 \section{test.\ $\Ro$}

? r
OK, entering \nonstopmode...
! Undefined control sequence.
\@tempa ->\catcode `\<
                      12\relax \catcode `\>12\relax \catcode `\=12\relax 
l.22 \section{test.\ $\Ro$}

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

Ich bin mir nicht sicherWarumdie folgende Lösung funktioniert, aber hier ist sie: Laden Sie das amssymbPaketVor, nicht nach dem amsmathPaket.

Reduzieren Sie Ihren Code auf das Wesentliche, d. h. auf

\documentclass[3p,times]{elsarticle}
\usepackage{amssymb,amsmath}
\newcommand{\Ro}{\mathrel{\overset{0}{\sim}}}
\begin{document}
\section{test.\ $\Ro$}
\end{document}

Ich bekomme

Bildbeschreibung hier eingeben

ohne Fehler- oder Warnmeldungen. Der Unterschied besteht darin, dass amssymbvor und nicht nach geladen wird amsmath.

verwandte Informationen