natbib

Al autor de natbib no le gustaba mucho el nombre. En natbib.dtx, la fuente comentada del paquete, Patrick W. Daly explica que procede del natsci.bst de Stephen Gildea —natsci por natural sciences, ciencias naturales— y añade entre paréntesis que es, hay que reconocerlo, un nombre feo, pero ya demasiado asentado para cambiarlo. Feo o no, \usepackage{natbib} sigue siendo la manera en que un documento LaTeX obtiene citas autor–año como (Jones et al., 1990) a partir del BibTeX clásico. Esta página va más allá de la gramática de \citet y \citep, que corresponde a la página sobre citas, y entra en los puntos donde uno se atasca de verdad: con qué archivos .bst puede trabajar natbib y con cuáles no, qué está diciendo (author?) y cuál de round, square, \bibpunct y \setcitestyle decide realmente los paréntesis.

\usepackage{natbib} y los tres estilos que lo acompañan: plainnat, abbrvnat, unsrtnat

Bastan dos líneas en el preámbulo: \usepackage{natbib} y \bibliographystyle{plainnat}. La segunda importa más de lo que parece, y equivocarla es justo lo que rompe las citas. natbib incluye tres archivos .bstplainnat, abbrvnat y unsrtnat— que componen la bibliografía igual que los estándar plain, abbrv y unsrt, pero escriben en cada \bibitem un dato de más: el autor y el año, etiquetados por separado. Ese dato adicional es todo el truco. Un estilo estándar escribe solo \bibitem{jon90}, de modo que LaTeX únicamente puede imprimir un número opaco; los estilos nat escriben \bibitem[Jones et al.(1990)Jones, Baker, and Williams]{jon90}, y de esa sola línea natbib arma, según haga falta, una lista de autores abreviada, una completa, un año o un número.

La secuencia de ejecución es la misma que con BibTeX a secas: latex (o pdflatex), luego bibtex, luego latex dos veces — la primera pasada escribe las claves en el archivo .aux, bibtex construye el .bbl y las dos últimas releen las etiquetas. Para referencias en japonés se sustituye bibtex por pbibtex o upbibtex. Lo que natbib añade es una sola cosa: el mismo .bib y el mismo plainnat producirán también citas numéricas si se piden. Los paquetes de autor–año existían mucho antes de que natbib apareciera en 1993 —harvard, apalike, chicago, astron—, pero cada uno ataba el manuscrito a un único esquema de cita, de modo que cambiar a una revista numérica obligaba a reescribir el texto. natbib aprendió a leer todas sus etiquetas \bibitem y convirtió el esquema en una opción de paquete.

document.tex
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{plainnat}   % not plain: only plainnat carries author and year
\begin{document}

The line-breaking algorithm is described by \citet{knuth1986}.
The same idea is used elsewhere \citep[chap.~2]{lamport1994}.

\bibliography{refs}
\end{document}

% pdflatex doc -> bibtex doc -> pdflatex doc -> pdflatex doc
% (pbibtex or upbibtex instead of bibtex for Japanese references)

Citas que salen como (author?): Author undefined for citation

Ese par —un (author?) en negrita en el PDF y Package natbib Warning: Author undefined for citation 'knuth1986' on page 1 en el registro— significa que el .bst indicado no sabe hacer autor–año. Es lo que produce siempre \bibliographystyle{plain} junto con \citet: plain.bst escribe etiquetas \bibitem{knuth1986} desnudas, de modo que no hay autor que natbib pueda encontrar y \citet{knuth1986} degenera en (author?) [1]. Lo incómodo es que \citep, en el mismo documento, se ve perfectamente bien —solo necesita el número—, así que el daño se esconde con facilidad en un borrador largo. La solución es nombrar un estilo que lleve el dato: plainnat en lugar de plain, abbrvnat en lugar de abbrv, unsrtnat en lugar de unsrt, o cualquiera de los estilos autor–año que natbib entiende (chicago, apalike, named, agsm, dcu, kluwer). Vuelva a ejecutar bibtex tras cambiar el estilo; editar solo el archivo .tex no refresca las etiquetas del .bbl.

thebibliography
% plain.bst writes this -- no author, no year, so \citet cannot work
\bibitem{jon90}

% plainnat.bst writes this -- short list, year, then the full list
\bibitem[Jones et al.(1990)Jones, Baker, and Williams]{jon90}

% apalike.bst and friends: the minimal form natbib still accepts
\bibitem[Jones et al., 1990]{jon90}

La familia completa: \citet / \citep con asterisco, más \citealt, \citealp, \citeauthor, \citeyear

Todo lo que va más allá de \citet y \citep existe para desmontar una cita. Las formas con asterisco componen la lista completa de autores en vez de abreviar con «et al.»; \citealt y \citealp dan el mismo contenido que \citet y \citep pero sin los paréntesis (la alt remite a textual, la alp a parentético). \citeauthor devuelve solo el autor y \citeyear solo el año, de modo que puede armarse a mano una frase como «Jones y sus colegas ya sostenían, en 1990, que…». Las salidas de abajo proceden de \usepackage[round]{natbib} con plainnat; la clave jon90 designa a Jones, Baker, and Williams (1990). Conviene señalar que \citet no estuvo desde el principio: natbib se publicó en 1993, pero \citet no llegó hasta la versión 6.2, el 11 de enero de 1996 — el comando con el que hoy se identifica el paquete es más de dos años posterior al paquete mismo.

ComandoSalida de ejemploUso
\citet{jon90}Jones et al. (1990)textual; el autor forma parte de la oración
\citep{jon90}(Jones et al., 1990)parentético; todo va entre paréntesis
\citet*{jon90}Jones, Baker, and Williams (1990)lista completa de autores, textual
\citep*{jon90}(Jones, Baker, and Williams, 1990)lista completa de autores, parentético
\citealt{jon90}Jones et al. 1990\citet sin los paréntesis
\citealp{jon90}Jones et al., 1990\citep sin los paréntesis; para paréntesis propios
\citeauthor{jon90}Jones et al.solo el autor
\citeauthor*{jon90}Jones, Baker, and Williamssolo la lista completa de autores
\citefullauthor{jon90}Jones, Baker, and Williamsidéntico a \citeauthor*; la grafía más antigua
\citeyear{jon90}1990solo el año
\citeyearpar{jon90}(1990)el año entre paréntesis, cuando ya se nombró al autor
\citetext{priv.\ comm.}(priv. comm.)texto libre dentro de los paréntesis de la cita
\citenum{jon90}21el número desnudo, sin paréntesis ni superíndice

Todas las órdenes \cite… admiten las mismas notas entre corchetes, pero el manual de Daly lo dice sin rodeos: las notas están pensadas para \citep. Añadir una a \citeyear o \citeauthor no da error, pero se ignora en silencio en modo numérico y en modo autor–año solo se atiende la nota posterior. Pasar varias claves a \citet también figura como desaconsejado: con notas, la nota previa se repite ante cada año mientras que la posterior se pega solo a la última — Daly los llama errores reconocidos cuya corrección no compensa el esfuerzo, dada la dudosa utilidad de la función. En la práctica, deje las citas agrupadas a \citep y reserve \citet para una sola obra. Varios trabajos del mismo autor y el mismo año se fusionan solos como (Jones et al., 1990a,b).

latex
The algorithm is due to \citet{knuth1986}.
It runs in linear time \citep[Theorem~3]{knuth1986}.
See the discussion of line breaking \citep[see][chap.~2]{knuth1986}.
Similar ideas appear elsewhere \citep{knuth1986,lamport1994}.
Both papers agree \citep{jon90a,jon90b}.   % -> (Jones et al., 1990a,b)

% author and year taken apart by hand
\citeauthor{jon90} first made the claim in \citeyear{jon90}.

\Citet y \Citep: poner en mayúscula «della» o «van der» al inicio de la oración

Se usan las formas capitalizadas \Citet, \Citep, \Citealt, \Citealp y \Citeauthor (también con asterisco). Hacen falta cuando un apellido lleva una «partícula»: el della de della Robbia, el van der de van der Waals. A mitad de frase la minúscula es la correcta, así que \citet{dRob98} compone della Robbia (1998); pero una oración que empieza con ese nombre debe empezar con mayúscula. natbib no reescribe el apellido del archivo .bib: pone en mayúscula solo la primera letra de la salida, de modo que una misma obra puede citarse a mitad de frase y al inicio de otra sin que la bibliografía tenga dos grafías.

ComandoSalida
\citet{dRob98}della Robbia (1998)
\Citet{dRob98}Della Robbia (1998)
\Citep{dRob98}(Della Robbia, 1998)
\Citealt{dRob98}Della Robbia 1998
\Citealp{dRob98}Della Robbia, 1998
\Citeauthor{dRob98}Della Robbia

De autor–año a numbers o super sin tocar el cuerpo del texto

Basta con cambiar una palabra en las opciones. Con \usepackage[numbers]{natbib}, \citet{jon90} pasa a ser Jones et al. [21], \citep{jon90} pasa a ser [21] y \citep[chap.~2]{jon90}, con su nota, pasa a [21, chap. 2]. \usepackage[super]{natbib} da los números en superíndice que usan Nature y sus parientes. Los \citet y \citep del texto se quedan como están — y justo por eso escribió Daly natbib: el objetivo de diseño era que cambiar de revista costara una línea del preámbulo y nada más. La bibliografía en sí es asunto del archivo .bst, de modo que plainnat puede seguir en su sitio mientras las citas se vuelven numéricas.

El modo numérico pone en juego tres opciones de orden y compresión. sort coloca las citas múltiples en el orden de la bibliografía, compress pliega las series consecutivas en intervalos y sort&compress hace las dos cosas — eso es lo que convierte \citep{a,b,c} de [21, 19, 20] en [19–21]. Dos avisos. Varias claves dentro de \citet tienen aquí aún menos sentido que en modo autor–año, pues solo queda una lista de autores delante de una ristra de números. Y en modo super, \citeyearpar se comporta igual que \citeyear y pierde los paréntesis; una revista que quiera paréntesis alrededor de un superíndice, al estilo de (Ref. 21), debe darlos de forma explícita con \setcitestyle{open={(},close={)}}. Y hay un comando que echa por tierra en silencio la promesa de toda esta sección: el \cite desnudo se comporta como \citet en modo autor–año, pero como \citep en los modos numérico y de superíndice, de manera que una frase construida sobre él cambia de papel gramatical en cuanto se conmuta. Con natbib se escribe \citet o \citep, nunca \cite.

latex
% author-year, the mode the nat styles assume
\usepackage{natbib}

% numeric, sorted, consecutive runs folded into ranges: [19-21]
\usepackage[numbers,sort&compress]{natbib}

% superscript numbers, as used by Nature and its relatives
\usepackage[super,sort&compress]{natbib}

% the body text is identical in all three cases

Por qué plainnat imprime [Jones et al., 1990]: round, square, \bibpunct, \setcitestyle

Porque \bibliographystyle{plainnat} llama al \bibstyle@plainnat interno de natbib, definido como \bibpunct{[}{]}{,}{a}{,}{,}. natbib lleva una tabla de puntuación indexada por nombre de .bstchicago recibe paréntesis y punto y coma, agu corchetes, nature superíndices sin delimitador — y plainnat, abbrvnat y unsrtnat están todos asignados a corchetes con coma de separación. Suele leerse que natbib usa paréntesis por omisión; ese valor por omisión solo se ve con un .bst cuyo nombre no figura en la tabla de natbib. A la inversa, en cuanto se nombra cualquier opción de delimitador, separador o modo, natbib ejecuta su nobibstyle interno y desconecta la puntuación dictada por el .bst. Así, \usepackage[round]{natbib} devuelve los paréntesis incluso con plainnat, y \usepackage[authoryear]{natbib} reactiva el mecanismo a propósito.

OpciónEfecto
roundparéntesis (…); valor por omisión cuando natbib no conoce el nombre del .bst
squarecorchetes […]
curlyllaves {…}
angleángulos <…>
semicolonseparar las citas múltiples con punto y coma
colonidéntica a semicolon; la opción original mal bautizada, corregida en 8.0
commaseparar las citas múltiples con coma
authoryearmodo autor–año; vuelve a activar la puntuación dictada por el .bst
numbersmodo numérico; internamente ejecuta también square y comma
supernúmeros en superíndice, delimitadores vacíos (estilo Nature)
sortordenar las citas múltiples según la bibliografía
compressplegar las series consecutivas en intervalos sin ordenar
sort&compressordenar y luego plegar en intervalos, dando [19–21]
longnamesfirstlista completa de autores en la primera cita de cada obra, et al. después
sectionbibcon chapterbib, componer la bibliografía como \section*
mergefusionar bajo un solo número las claves marcadas con *; la función de mcite

Para cambiar el aspecto una vez cargado el paquete se usa \setcitestyle{…}, añadido en natbib 8.0 en 2007. Recibe una lista de palabras clave separadas por comas: el modo es authoryear, numbers o super; los delimitadores round, square, curly o angle; el separador semicolon o comma. El ajuste fino llega con pares key={value}open={(} y close={)} para los delimitadores mismos, citesep={;} entre citas múltiples, aysep={,} entre autor y año, yysep={,} entre años y notesep={, } antes de una nota. Escribir \setcitestyle{square,aysep={},yysep={;}} responde así justo a una norma editorial que pida corchetes, ninguna coma entre autor y año y punto y coma entre los años.

preamble
\usepackage[round,semicolon]{natbib}   % (Jones et al., 1990; Smith, 1989)
\bibliographystyle{plainnat}

% change it again, later in the preamble (natbib 8.0 and later)
\setcitestyle{square,aysep={},yysep={;}}

% the older equivalent: [notesep]{open}{close}{citesep}{mode}{aysep}{yysep}
% mode: n = numeric, s = superscript, anything else = author-year
\bibpunct[, ]{(}{)}{;}{a}{,}{,}

\bibpunct es la orden más antigua para la misma tarea y toma un argumento opcional y seis obligatorios: por orden, el delimitador de apertura, el de cierre, el separador entre citas múltiples, el modo (n numérico, s superíndice, cualquier otra cosa autor–año), la puntuación entre autor y año y la que va entre los años de un mismo autor. El argumento opcional inicial es la cadena que se coloca justo antes de una nota, , por omisión. \setcitestyle se lee con más claridad, así que conviene preferirlo en documentos nuevos y reservar \bibpunct para saber descifrarlo en un manuscrito antiguo o en un archivo de clase. También puede tomarse prestada solo la puntuación de un .bst conocido con \citestyle{chicago}; y para asociar puntuación a un .bst propio basta con poner \newcommand{\bibstyle@mystyle}{\bibpunct…} en un archivo natbib.cfg: \bibliographystyle{mystyle} la aplicará por sí solo.

Clases que cargan natbib por usted: el nonatbib de elsarticle y el paquete cite que no debe añadirse

Si \citet funciona y nunca se escribió \usepackage{natbib}, lo cargó el archivo de clase. El elsarticle de Elsevier ejecuta \RequirePackage[\@biboptions]{natbib} y ofrece precisamente \documentclass[nonatbib]{elsarticle} para poder impedirlo. El revtex4-2 de la American Physical Society lo carga como \RequirePackage[sort&compress]{natbib}, con versión mínima incluida. En TeX Live 2024, 92 archivos de clase mencionan natbib, y el propio Daly escribió que muchas revistas lo admiten — lo exigen. De ahí se sigue una trampa: añadir \usepackage{cite} para ordenar los números produce Package natbib Warning: The 'cite' package should not be used with natbib. Use option 'sort' instead. El sustituto de cite es sort o sort&compress; el de mcite, la opción merge o elide. Y citeref debe cargarse después de natbib, o se obtiene un error.

natbib o biblatex: con cuál empezar un documento nuevo

Si las normas de envío nombran un .bst, use natbib; si empieza un documento nuevo y puede elegir con libertad, biblatex es la opción más sólida. La ventaja de natbib es que los archivos .bib, los estilos .bst y el programa bibtex que ya tiene siguen funcionando sin retoques y, como acabamos de ver, muchísimas clases de revista lo dan por supuesto. biblatex, junto con el motor biber que se ocupa de la ordenación, gobierna tanto el orden como el formato del lado de LaTeX y se diseñó desde el principio para una salida multilingüe y localizada. natbib se detuvo en la versión 8.31b de 2010; su código merge y elide lo encargó la American Physical Society y lo escribió Arthur Ogawa — el (PWD, AO) de la cadena de versión son las iniciales de ambos autores. Los dos no se combinan, así que hay que elegir. Las correspondencias de comandos (\citet\textcite, \citep\parencite) están en la página sobre citas, y el lado de biblatex, en la página de biber / biblatex.