Fehler beim Zitieren in der Gleichung

Fehler beim Zitieren in der Gleichung

Ich habe ein seltsames Problem mit einer Gleichung in meinem Dokument: Immer wenn ich die Ausgabedateien lösche, um eine Neukompilierung durchzuführen, müssen auch alle mit der Bibliografie verbundenen Dateien neu generiert werden, und dieser Code lässt sich nicht kompilieren:

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

Fehler:Befehl \bfseries im Mathematikmodus ungültig. A\stackrel{\cite{A01}}{=}

Ich habe herausgefunden, dass wenn ich die Datei folgendermaßen bearbeite:

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

Ich muss nur die erste Zeile kommentieren, die zweite auskommentieren, kompilieren, die kommentierten Zeilen zurücksetzen und erneut kompilieren, und schon funktioniert es.

Im Grunde schlägt es nur bei Neukompilierungen fehl, danach ist es kein Problem. Aber es ist trotzdem ärgerlich, da ich rund um die Uhr an meiner Abschlussarbeit arbeite und es mindestens ein paar Mal am Tag machen muss.
Außerdem: Wenn ich meine Abschlussarbeit (einschließlich des LaTeX-Codes) abgebe, wird jemand auf dieses Problem stoßen, und ich möchte sie nicht zwingen, herauszufinden, was falsch ist, um meine Datei kompilieren zu können.

Vielen Dank für jede Hilfe hierzu!

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}

Antwort1

In

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

das \cite{A01}ist im Mathematikmodus. Sie können dies leicht überprüfen, indem Sie x^2dort etwas wie Folgendes schreiben.

Wenn LaTeX beim ersten Durchlauf versucht, das Zitat im Mathematikmodus zu verarbeiten, während es noch unbekannt ist, \reset@font\bfseries ? natbibführt das Drucken zu dem angezeigten Fehler: Command \bfseries invalid in math mode.

Um dies zu vermeiden, müssen Sie sicherstellen, dass Sie in den Textmodus zurückkehren. Ich würde das tun, indem ich lade amsmathund sage

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

Übrigens passiert der Fehler nicht mit der Standarddefinition von \cite(also wenn man nicht lädt natbib), denn das druckt das Fragezeichen in a \hboxund bricht damit aus dem Mathemodus aus

\hbox{\reset@font\bfseries ?}

verwandte Informationen