Sequência de controle indefinida: nova matemática definida na legenda

Sequência de controle indefinida: nova matemática definida na legenda

Quando compilo o documento com este código:

\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}

Entendo que o compilador está tendo problemas para entender um comando que defini. Verifique se o comando está escrito corretamente. Se o comando fizer parte de um pacote, certifique-se de ter incluído o pacote em seu preâmbulo usando \usepackage{...}.

Não funciona no overleaf.com e no meu PC, porém no meu laptop com Ubuntu não produz nenhum erro.

Alguém poderia me dizer como evitar ou corrigir isso?


atualizar:

Tentei aproveitar a sugestão de mudar a ordem de como amssymbe amsmathsão carregados; funciona.

\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}

Porém, se eu adicionar todos os meus pacotes, o problema retorna.

\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}

Responder1

É uma interação bastante estranha com scalerel. Posso reproduzir o comportamento com um exemplo mais simples:

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

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

\begin{document}

\section{test.\ $\Ro$}

\end{document}

O problema desaparece quando scalerelé removido.

Solução: usar

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

(Retirei \mathrelporque não é necessário, pois \simé um símbolo de relação e \overseté capaz de adivinhar corretamente).

Responder2

Muito obrigado por produzir um MWE completo (exemplo mínimo de trabalho). Consegui reproduzir imediatamente o erro em uma versão de pré-lançamento do MacTeX2020. Especificamente, recebi a seguinte sequência de mensagens:

! 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.

Eu não tenho certezapor quea solução a seguir funciona, mas aqui vai: Carregue o amssymbpacoteantes, não depois, o amsmathpacote.

Reduzir seu código ao essencial, ou seja, para

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

eu recebo

insira a descrição da imagem aqui

sem qualquer mensagem de erro ou aviso. O que faz a diferença é que ele amssymbé carregado antes e não depois amsmath.

informação relacionada