Tengo un problema extraño con una ecuación en mi documento: cada vez que borro los archivos de salida para realizar una nueva compilación, todos los archivos relacionados con la bibliografía también deben regenerarse y este fragmento de código no se puede compilar:
\begin{equation}
A\stackrel{\cite{A01}}{=}B
\end{equation}
Error:El comando \bfseries no es válido en modo matemático. A\stackrel{\cite{A01}}{=}
Descubrí que si edito el archivo de esta manera:
\begin{equation}
A\stackrel{\cite{A01}}{=}B
% A=B %First compile with this, then with the other!!
\end{equation}
Sólo necesito comentar la primera línea, descomentar la segunda, compilar, retroceder las líneas comentadas y volver a compilar y funciona.
Básicamente, falla solo en compilaciones nuevas, después de eso no hay problema. Pero aun así es molesto porque trabajo 24 horas al día, 7 días a la semana en mi tesis y tengo que hacerlo al menos un par de veces al día.
Además: al entregar mi tesis (incluido el código LaTeX), alguien se encontrará con este problema y me gustaría no obligarlos a descubrir qué está mal para poder compilar mi archivo.
¡Gracias por cualquier ayuda en esto!
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}
Respuesta1
En
\begin{equation}
A\stackrel{\cite{A01}}{=}B
\end{equation}
está \cite{A01}
en modo matemático. Puede verificar esto fácilmente escribiendo algo como x^2
allí.
Cuando LaTeX intenta procesar la cita en modo matemático en la primera ejecución, cuando aún se desconoce, el \reset@font\bfseries ?
natbib
mensaje quiere imprimir provoca el error que aparece: Command \bfseries invalid in math mode
.
La forma de evitar esto es asegurarse de volver al modo de texto. Lo haría cargando amsmath
y diciendo
A\stackrel{\text{\cite{A01}}}{=}B
Por cierto, el error no ocurre con la definición estándar de \cite
(es decir, si no carga natbib
), porque imprime el signo de interrogación en un \hbox
y, por lo tanto, sale del modo matemático.
\hbox{\reset@font\bfseries ?}