Неопределенная последовательность управления: новая определенная математика в заголовке

Неопределенная последовательность управления: новая определенная математика в заголовке

Когда я компилирую документ с этим кодом:

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

Я понимаю, что компилятор испытывает трудности с пониманием команды, которую я определил. Проверьте, правильно ли написана команда. Если команда является частью пакета, убедитесь, что вы включили пакет в преамбулу с помощью \usepackage{...}.

Он не работает на overleaf.com и моем ПК, однако на моем ноутбуке с Ubuntu он не выдает никаких ошибок.

Может ли кто-нибудь подсказать, как этого избежать или исправить?


обновлять:

Я попробовал воспользоваться предложением изменить порядок загрузки amssymbи — это сработало.amsmath

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

Однако если я добавлю все свои пакеты, проблема вернется.

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

решение1

Это довольно странное взаимодействие с scalerel. Я могу воспроизвести поведение на более простом примере:

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

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

\begin{document}

\section{test.\ $\Ro$}

\end{document}

Проблема исчезает после scalerelудаления.

Решение: использовать

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

(Я удалил, \mathrelпотому что это не нужно, так как \simэто символ отношения и \oversetего можно правильно угадать).

решение2

Большое спасибо за создание полного MWE (минимального рабочего примера). Я сразу же смог воспроизвести ошибку на предварительной версии MacTeX2020. В частности, я получил следующую последовательность сообщений:

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

Я не уверенпочемуследующее решение работает, но вот: Загрузите amssymbпакетдо, а не после, amsmathпосылка.

Сократите свой код до самого необходимого, т.е. до

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

я получил

введите описание изображения здесь

без каких-либо сообщений об ошибках или предупреждений. Разница в том, что amssymbзагружается до, а не после amsmath.

Связанный контент