Erro ao citar na equação

Erro ao citar na equação

Eu tenho um problema estranho com uma equação no meu documento: sempre que eu limpo os arquivos de saída para fazer uma nova recompilação, todos os arquivos relacionados à bibliografia também precisam ser regenerados, e este trecho de código falha na compilação:

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

Erro:Comando \bfseries inválido no modo matemático. A\stackrel{\cite{A01}}{=}

Eu descobri que se eu editar o arquivo assim:

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

Só preciso comentar a primeira linha, descomentar a segunda, compilar, voltar as linhas comentadas e recompilar e funciona.

Basicamente, ele falha apenas em compilações novas, depois disso não há problema. Mas ainda assim é chato, já que estou trabalhando 24 horas por dia, 7 dias por semana na minha tese e tenho que fazer isso pelo menos algumas vezes por dia.
Além disso: ao entregar minha tese (incluindo o código LaTeX) alguém se deparará com esse problema, e eu gostaria de não forçá-lo a descobrir o que está errado para poder compilar meu arquivo.

Obrigado por qualquer ajuda sobre isso!

MWE:

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

Responder1

Em

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

o \cite{A01}está no modo matemático. Você pode verificar isso facilmente escrevendo algo como x^2aqui.

Quando o LaTeX tenta processar a citação em modo matemático na primeira execução, quando ela ainda é desconhecida, o \reset@font\bfseries ? natbibdesejo de imprimir causa o erro que você vê: Command \bfseries invalid in math mode.

A maneira de evitar isso é voltar ao modo de texto. Eu faria isso carregando amsmathe dizendo

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

Aliás, o erro não acontece com a definição padrão de \cite(ou seja, se você não carregar natbib), porque isso imprime o ponto de interrogação em a \hboxe, portanto, sai do modo matemático

\hbox{\reset@font\bfseries ?}

informação relacionada