Ошибка при цитировании в уравнении

Ошибка при цитировании в уравнении

У меня возникла странная проблема с одним уравнением в моем документе: всякий раз, когда я очищаю выходные файлы, чтобы выполнить новую перекомпиляцию, все файлы, связанные с библиографией, также приходится генерировать заново, и этот фрагмент кода не компилируется:

\begin{equation}
    A\stackrel{\cite{A01}}{=}B
\end{equation}

Ошибка:Команда \bfseries недопустима в математическом режиме. A\stackrel{\cite{A01}}{=}

Я понял, что если я отредактирую файл следующим образом:

\begin{equation}
    A\stackrel{\cite{A01}}{=}B
%   A=B  %First compile with this, then with the other!!
\end{equation}

Мне просто нужно закомментировать первую строку, раскомментировать вторую, скомпилировать, вернуть закомментированные строки обратно и перекомпилировать, и все заработает.

В основном это происходит только на свежих компиляциях, после этого это не проблема. Но все равно это раздражает, так как я работаю над своей диссертацией 24/7 и должен делать это как минимум пару раз в день.
Также: при сдаче моей диссертации (включая код LaTeX) кто-то столкнется с этой проблемой, и я бы не хотел заставлять их выяснять, в чем проблема, чтобы иметь возможность скомпилировать мой файл.

Спасибо за любую помощь по этому вопросу!

МВЭ:

\documentclass{scrreprt}
\usepackage{natbib}
\usepackage{hyperref}
\usepackage{filecontents}

\begin{filecontents*}{foo.bib}
    @misc{A01,
        author = {Author, A.},
        year = {2001},
        title = {Alpha},
    }
    @misc{B02,
        author = {Buthor, B.},
        year = {2002},
        title = {Bravo},
    }
\end{filecontents*}

\begin{document}
    \begin{equation}
    A\stackrel{\cite{A01}}{=}B
%   A=B  %First compile with this, then with the other!!
    \end{equation}

    \nocite{*} 
    \bibliography{foo}
    \bibliographystyle{plain}
\end{document}

решение1

В

\begin{equation}
  A\stackrel{\cite{A01}}{=}B
\end{equation}

находится \cite{A01}в математическом режиме. Вы можете легко это проверить, написав что-то вроде x^2там.

Когда LaTeX пытается обработать цитату в математическом режиме при первом запуске, когда она еще неизвестна, команда \reset@font\bfseries ? natbibwants to print вызывает ошибку, которую вы видите: Command \bfseries invalid in math mode.

Чтобы этого избежать, нужно обязательно вернуться в текстовый режим. Я бы сделал это, загрузив amsmathи сказав

A\stackrel{\text{\cite{A01}}}{=}B

Кстати, ошибка не возникает при стандартном определении \cite(т.е. если вы не загружаете natbib), потому что это печатает вопросительный знак в \hboxи, таким образом, выходит из математического режима

\hbox{\reset@font\bfseries ?}

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