
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. amssymb
Es amsmath
funktioniert.
\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 scalerel
es entfernt wird.
Lösung: Verwenden Sie
\DeclareRobustCommand{\Ro}{\overset{0}{\sim}}
(Ich habe es entfernt, \mathrel
weil es nicht notwendig ist, da \sim
es sich um ein Relationssymbol handelt und \overset
es 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 amssymb
PaketVor, nicht nach dem amsmath
Paket.
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
ohne Fehler- oder Warnmeldungen. Der Unterschied besteht darin, dass amssymb
vor und nicht nach geladen wird amsmath
.