Listas de errores y advertencias

Los mensajes de error de LaTeX están construidos para que las primeras palabras tras el ! digan quién se queja. Un ! Missing $ inserted. sin prefijo procede del propio motor TeX, ! LaTeX Error: del núcleo de LaTeX y ! Package hyperref Error: del paquete que nombra. Saber leer esa distinción hace que la primera línea ya decida si la corrección corresponde al manuscrito, al orden de carga del preámbulo o al gestor de incidencias de otra persona. Esta página es un índice de los mensajes que la gente encuentra de verdad, citados literalmente, con lo que significan realmente y un enlace a la página que los trata a fondo. Todos los mensajes aquí listados se reprodujeron en TeX Live 2024.

Las palabras tras ! nombran al emisor: TeX, LaTeX, un paquete o una advertencia

Una línea que empieza por ! es un error y puede detener la compilación; una línea sin ! es una advertencia o una nota, y la compilación sigue. Los errores se reparten además en tres capas, y las palabras justo tras el ! dicen cuál. La capa más baja es el motor TeX, cuyos mensajes no llevan prefijo alguno: ! Missing $ inserted. se lee igual palabra por palabra desde hace cuarenta años, y TeX puro, sin LaTeX cargado, imprime la misma frase. La capa intermedia es el núcleo de LaTeX, ! LaTeX Error: …, y la superior son paquetes y clases, ! Package X Error: … y ! Class X Error: …. Cuanto más alta la capa, más amable la redacción; cuanto más baja, más cerca de aquello en lo que TeX está realmente atascado. Un mensaje sin prefijo suele significar que la sintaxis del propio manuscrito está rota.

Forma de la líneaQuién habla y qué hace a la compilación
! Missing $ inserted.el propio motor TeX; la ausencia de prefijo es la señal, la sintaxis del manuscrito está rota
! LaTeX Error: ...el núcleo de LaTeX; una infracción de sus reglas sobre entornos, referencias o preámbulo
! Package X Error: ...el paquete X, por su nombre; leer su manual con texdoc X suele ser el paso siguiente más rápido
! Class X Error: ...la clase de documento X; en clases de revista suele avisar de una norma editorial incumplida
LaTeX Warning: ...una advertencia del núcleo; la compilación tiene éxito y el código de salida sigue siendo 0
Package X Warning: ...una advertencia de paquete; unas terminan con on input line N y otras no
Overfull \hbox (...)directamente del constructor de párrafos; no lleva ! ni la palabra Warning
Package X Info: ...solo información; se queda en el .log y no llega al terminal, pero a menudo explica un fallo posterior

Errores del motor TeX: los mensajes sin prefijo

Este grupo informa de que TeX ya no puede avanzar por la entrada, y la causa es casi siempre el emparejamiento de llaves, $ o &, o la forma de escribir un número. La redacción es escueta porque se escribió antes de que LaTeX existiera. A cambio, estas cadenas son idénticas en toda distribución y en documentos de cualquier época, así que se buscan bien. Lo que sigue se reprodujo en TeX Live 2024.

MensajeQué significa realmente y el primer paso
! Undefined control sequence.el comando al final derecho de la línea superior no está definido: errata, paquete olvidado o definición demasiado tardía
! Missing $ inserted.un símbolo exclusivo de matemáticas aparece en el texto; _, ^ y \alpha son los detonantes habituales
! Missing } inserted.algo terminó con una { aún abierta; la causa está aguas arriba del punto señalado
! Too many }'s.una } de más; casi siempre falta una { en una línea anterior
! Extra alignment tab has been changed to \cr.una fila de la tabla tiene más & de los que permite la especificación de columnas; cuéntelos
! Misplaced alignment tab character &.un & fuera de cualquier tabla; para el carácter en sí, escriba \&
! Double subscript.dos _ sobre el mismo átomo, como x_1_2; agrúpelos como x_{12}
! Missing number, treated as zero.se esperaba una longitud o un recuento y no se halló; un argumento vacío como \hspace{} es lo típico
! Illegal unit of measure (pt inserted).un número sin unidad, como en \rule{1}{2pt}; añada cm, pt o em
! Paragraph ended before \x was complete.una línea en blanco cayó dentro de un argumento; el Runaway argument? justo encima lo delata
! File ended while scanning use of \x.el archivo se acabó antes de cerrar un argumento: la fase terminal de una } que falta
! Missing \endcsname inserted.algo no expandible entró en \csname … \endcsname; sospeche de un nombre de macro construido
! TeX capacity exceeded, sorry [...]los corchetes nombran el recurso agotado; [grouping levels=255] apunta a una recursión desbocada
! Emergency stop.TeX pidió una entrada imposible de dar: típicamente un archivo que falta en modo no interactivo

Errores del núcleo de LaTeX: los que empiezan por ! LaTeX Error:

Aquí se trata de infracciones de las convenciones de LaTeX y no de la sintaxis de TeX, y como la redacción es mucho más precisa, la corrección suele ser única. Entornos mal emparejados, un \usepackage fuera de sitio, un comando exclusivo del preámbulo, un archivo que no está: cada caso responde a una regla que LaTeX se dio a sí mismo. Conviene recordar que en el .log cada uno de estos mensajes va seguido de un párrafo de ayuda más explícito que la única línea del terminal; ante la duda, abra el registro.

MensajeQué significa realmente y el primer paso
! LaTeX Error: File `x.sty' not found.el paquete no está instalado o está mal escrito; compruebe con kpsewhich x.sty e instale con tlmgr install x
! LaTeX Error: Environment x undefined.el paquete que define el entorno nunca se cargó; compruebe también la ortografía del nombre
! LaTeX Error: \begin{x} on input line N ended by \end{y}.los entornos se cruzan en lugar de anidarse; N es la línea de apertura, lea hacia abajo desde ahí
! LaTeX Error: Command \x already defined.se usó \newcommand sobre un nombre existente; use \renewcommand si se pretende sobrescribir
! LaTeX Error: Missing \begin{document}.apareció algo imprimible en el preámbulo; basta un solo carácter no blanco
! LaTeX Error: Option clash for package x.una segunda carga pidió una opción que la primera no tenía; \PassOptionsToPackage lo arregla
! LaTeX Error: Something's wrong--perhaps a missing \item.la lista está vacía, o hay texto antes del primer \item
! LaTeX Error: There's no line here to end.se usó \\ donde no había comenzado ninguna línea, típicamente al inicio de un párrafo o de center
! LaTeX Error: Not in outer par mode.se colocó un flotante dentro de otro flotante o de una caja; una figure no puede ir dentro de otra ni de un minipage
! LaTeX Error: \caption outside float.\caption apareció fuera de una figure o table; enciérrelo o use \captionof
! LaTeX Error: Can be used only in preamble.se usó en el cuerpo un comando exclusivo del preámbulo, como \usepackage
! LaTeX Error: \usepackage before \documentclass.se usó \usepackage antes de \documentclass; allí solo funciona \RequirePackage
! LaTeX Error: Unknown option `x' for package `y'.el paquete nunca declaró esa opción; compruebe la ortografía y la versión
! LaTeX Error: Unicode character X (U+NNNN)el carácter no tiene definición; bajo pdfLaTeX afecta a CJK y emoji, mientras que XeLaTeX y LuaLaTeX los aceptan

Errores de paquete: ! Package X Error: es X quien habla

Los mensajes de esta capa los escribió el propio paquete nombrado, de modo que las mismas palabras figuran en su manual: abrir texdoc X y buscar el mensaje es el camino más corto. Además son concretos: este entorno no puede usarse aquí, este color no está definido, este paquete no convive con aquel. La solución suele estar dicha sin rodeos. Lo siguiente se produjo en TeX Live 2024.

MensajeQué significa realmente y el primer paso
! Package biblatex Error: Incompatible package 'natbib'.biblatex y natbib no pueden coexistir; sustituya por \usepackage[natbib=true]{biblatex}
! Package cleveref Error: cleveref must be loaded after hyperref!.un requisito de orden de carga: cleveref va después de hyperref y también de varioref
! Package amsmath Error: \begin{split} won't work here.split no puede ir solo; ha de estar dentro de equation o align
! Package xcolor Error: Undefined color `x'.el nombre de color no está definido; cargue un juego como dvipsnames o decláre con \definecolor
! Package babel Error: Unknown option 'x'.el nombre del idioma está mal escrito, o sus archivos no están instalados
! Package pdftex.def Error: File `x.png' not found: using draft setting.falta la imagen; se compone un marco y la ejecución sigue, así que revise la ruta y la extensión
! Package inputenc Error: ...casi nunca aparece en TeX Live 2024: el manejo de UTF-8 pasó al núcleo y a inputenc le queda poco que hacer

Advertencias: nunca detienen la compilación, pero ignorarlas entrega un PDF incorrecto

Las advertencias nunca detienen la compilación ni alteran el código de salida 0, así que un trabajo de CI da la ejecución por buena. Justamente por eso son peligrosas: un PDF cuyas referencias siguen mostrando ??, o cuyos números van una revisión por detrás, nace aquí. Dos de ellas son instrucciones y no advertencias tolerables: LaTeX Warning: There were undefined references. y Label(s) may have changed. Rerun to get cross-references right. significan que hay que volver a compilar. Un script de compilación debería detectar esas dos líneas y repetir, o dejarle el asunto a latexmk.

MensajeQué significa realmente y el primer paso
Overfull \hbox (12.3pt too wide) in paragraph at lines 4--5una línea rebasa la caja de texto; el número dice cuánto, y por debajo de 1 pt no merece la pena
Underfull \hbox (badness 10000) in paragraph at lines 4--5una línea quedó demasiado floja; badness 10000 es el peor valor, y un \linebreak o \\ de más suele ser la causa
Overfull \vbox (26.3pt too high) detected at line 4el desbordamiento es vertical: una caja no cupo en la página
LaTeX Warning: Reference `x' on page 1 undefined on input line 3.la etiqueta aún no está en el .aux: o es la primera compilación, o el \label está mal escrito
LaTeX Warning: Citation `x' on page 1 undefined on input line 3.aún no se ha ejecutado bibtex o biber, o la clave no está en el .bib
LaTeX Warning: Label `x' multiply defined.la misma etiqueta existe dos veces; cada \ref solo puede apuntar a una
LaTeX Warning: There were undefined references.el resumen de fin de ejecución; entregar con esta línea deja un PDF con ??
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.la numeración difiere de la ejecución anterior; otra compilación lo resuelve
LaTeX Font Warning: Font shape `OT1/cmr/bx/sc' undefineduna combinación como negrita más versalitas no existe; se sustituye, así que solo cambia el aspecto
Package hyperref Warning: Token not allowed in a PDF string (Unicode):las matemáticas de un título no caben en un marcador PDF; sepárelas con \texorpdfstring{fórmula}{texto}

Mensajes que ya no aparecen y solo sobreviven en consejos caducos

Las respuestas antiguas que aparecen en las búsquedas siguen citando mensajes que TeX Live 2024 ya no produce; no ver la misma cadena no significa que la instalación esté rota. El caso más claro es el error de Unicode. Antes decía ! Package inputenc Error: Unicode character …; ahora que el manejo de UTF-8 vive en el núcleo dice ! LaTeX Error: Unicode character 日 (U+65E5), con not set up for use with LaTeX. en la línea siguiente. Y o ya no fallan en absoluto — medido, los caracteres se reparten entre los que pdfLaTeX acepta ahora y los que sigue rechazando, como CJK, emoji y . El choque de opciones de xcolor corrió la misma suerte, por un motivo que explica la página sobre choques de paquetes.

  • Caracteres Unicode — el mensaje es ahora ! LaTeX Error: Unicode character 日 (U+65E5) y no ! Package inputenc Error:. Bajo pdfLaTeX, y pasan, mientras que CJK, emoji y siguen sin pasar.
  • El choque de opciones de xcolor\usepackage[dvipsnames]{xcolor} seguido de \usepackage[table]{xcolor} no provoca error alguno, porque xcolor pasó a opciones clave-valor.
  • caption con subfigure — el antiguo error de «no puede usarse en cooperación» ha desaparecido; el .log solo anota Package caption Info: subfigure package is loaded.
  • subfigure con subcaption — cargar ambos no produce error. En cambio, \begin{subfigure} lo absorbe el viejo comando \subfigure y aparecen errores de aspecto ajeno como ! Missing number, treated as zero.