« Knuth (1986) décrit en détail la façon dont un paragraphe est découpé en lignes » et « la façon dont un paragraphe est découpé en lignes est décrite en détail (Knuth, 1986) » renvoient au même livre, et pourtant ces deux citations sont grammaticalement des pièces entièrement différentes. La première est le sujet de sa phrase ; la seconde, une note garée en dehors d'elle. C'est pour cela que LaTeX ne s'arrête pas à un seul \cite : natbib apparie \citet et \citep, biblatex apparie \textcite et \parencite, parce que la sortie doit savoir laquelle des deux fonctions est visée. Cette page suit un seul critère, de l'impression de la marque de citation aux numéros de page, aux citations multiples et à la réparation d'une citation sortie en [?] : lire la phrase à voix haute et vérifier qu'elle reste une phrase.
Écrire \cite{key} : clés, plusieurs ouvrages, numéros de page
\cite{knuth} imprime [1] dans le texte et, du même geste, inscrit l'ouvrage dans la liste des références. knuth est la clé de citation, un nom court que l'on choisit soi-même. La clé n'apparaît jamais dans la sortie ; ce qui apparaît, c'est le numéro ou le libellé attribué du côté de la liste. Plusieurs ouvrages tiennent dans une seule commande, séparés par des virgules : \cite{knuth,lamport} donne [1, 2]. Pour joindre une note telle qu'une page, on emploie l'argument optionnel : \cite[p.~5]{knuth} imprime [1, p. 5]. Le ~ est une espace qui refuse de se couper, de sorte que p. et 5 ne se retrouvent jamais sur deux lignes.
LaTeX brut n'accepte qu'une seule note de ce genre, et sa position est fixée : elle vient après la référence. Une demande comme « (see Knuth, 1986, p. 94) », avec une amorce placée devant le nom, ne peut tout simplement pas s'exprimer ici. natbib et biblatex lèvent cette restriction en prenant deux arguments optionnels au lieu d'un — voir plus bas la section sur les pages et les chapitres. À l'inverse, il est utile de connaître la limite tôt : ce que le \cite nu sait dire est plus étroit qu'il n'y paraît.
% \cite prints the mark and registers the work
The algorithm is described in detail~\cite{knuth}.
% several keys in one command, comma separated
Both accounts agree on this point~\cite{knuth,lamport}.
% one optional argument = a note printed after the reference
The rule appears on page 5~\cite[p.~5]{knuth}.
% register a work in the list without printing a mark
\nocite{lamport}Pour un ouvrage que l'on ne cite pas dans le texte mais que l'on veut voir figurer dans la liste, on emploie \nocite{key}. Aucune marque n'est imprimée ; seul l'enregistrement a lieu. La forme spéciale \nocite{*} inclut toutes les entrées du fichier .bib. Elle n'a toutefois de sens que si c'est BibTeX ou biber qui assemble la liste : un thebibliography écrit à la main imprime de toute façon chaque \bibitem saisi, si bien qu'y ajouter \nocite{*} ne change rien. C'est l'outil pour afficher une base bibliographique entière, et rien d'autre.
\citet ou \citep, \textcite ou \parencite : deux rôles grammaticaux
Un seul test tranche : le nom de l'auteur remplit-il une fonction grammaticale dans la phrase ? Si oui, on prend le \citet{knuth} de natbib (→ Knuth (1986)) ou le \textcite{knuth} de biblatex (même sortie). Sinon, \citep{knuth} (→ (Knuth, 1986)) ou \parencite{knuth} (→ (Knuth 1986)). Le manuel de biblatex énonce la distinction sans détour : \textcite est fait pour s'insérer dans le fil du texte à la place du sujet, et le manuel avertit que \autocite ne convient que là où la citation n'est pas un élément de la phrase au sens grammatical. Les deux familles suivent donc la structure de la phrase, non le goût visuel.
% natbib: \citet is textual, \citep is parenthetical
\citet{knuth} describes how a paragraph is broken into lines.
The procedure is described in detail~\citep{knuth}.
% biblatex: same split, different names
\textcite{knuth} describes how a paragraph is broken into lines.
The procedure is described in detail~\parencite{knuth}.Inversez-les et la sortie cesse d'être une phrase. Placez \citep à la place du sujet et vous obtenez « (Knuth, 1986) décrit la façon dont un paragraphe est découpé en lignes » : une phrase dont le sujet est une parenthèse. Employez \citet en fin de proposition et il reste « le procédé est décrit en détail Knuth (1986) », un nom propre sans attache. À la relecture, ces deux fautes se repèrent étonnamment mal, et aucun contrôle de conformité éditoriale ne les signalera, car l'erreur est grammaticale, pas typographique.
Pourquoi ne pas laisser le \cite nu trancher, alors ? Parce que \cite ne regarde jamais la grammaire. Dans natbib, ce n'est qu'un alias du mode : avec l'option authoryear il vaut \citet, avec numbers il vaut \citep. Ce qui décide, c'est un mot du préambule, pas la forme de la phrase. Le \cite de biblatex est plus sec encore : un libellé nu, sans aucun ajout, si bien que style=authoryear n'imprime que Knuth 1986, une forme qui ne tient ni dans le fil du texte ni dans une parenthèse. La commande n'a pas accès à votre syntaxe. Vous seul l'avez, et c'est précisément pour cela que des commandes explicites existent pour les deux rôles.
On range volontiers cela parmi les « problèmes auteur-année », mais la distinction survit à la numérotation. En mode numérique de natbib, \citet{knuth} imprime Knuth [1] tandis que \citep{knuth} imprime [1] ; de même, le \textcite de biblatex sous style=numeric donne Knuth [1]. C'est pourquoi « tout écrire avec \cite maintenant et changer de style plus tard » est un piège : à l'instant du changement, chaque citation censée porter un sujet s'effondre en un crochet, et il ne reste que des phrases trouées à l'endroit du nom. Le rôle se consigne à l'écriture : c'est le seul ordre sûr.
| Commande (natbib) | Sortie (authoryear) | Rôle |
|---|---|---|
\citet | Knuth (1986) | textuelle ; le nom est un élément de la phrase |
\citep | (Knuth, 1986) | parenthétique ; note placée hors de la phrase |
\cite | Knuth (1986) | alias ; \citet sous authoryear, \citep sous numbers |
\citealt | Knuth 1986 | forme textuelle sans parenthèses, à encadrer soi-même |
\citealp | Knuth, 1986 | forme parenthétique dont les parenthèses ont été retirées |
\citeauthor | Knuth | l'auteur seul, pour les mentions ultérieures |
\citeyear | 1986 | l'année seule, après un nom saisi à la main |
\citeyearpar | (1986) | l'année entre parenthèses, à associer à \citeauthor |
\citenum | 1 | le numéro nu ; jamais en exposant |
\citetext | (priv. comm.) | texte libre placé dans les parenthèses de citation |
\citet et \citep possèdent aussi des formes étoilées qui déploient toute la liste d'auteurs là où le style abrégerait en et al. Pour un article à trois auteurs, \citep{jbw} donne (Jones et al., 1990) tandis que \citep*{jbw} imprime (Jones, Baker, and Williams, 1990). Les revues qui exigent la liste complète à la première mention en sont l'usage habituel. Le déploiement dépend toutefois du style .bst : s'il ne conserve pas les noms complets, l'étoile ne change rien et la forme abrégée subsiste.
biblatex conserve les deux mêmes rôles et y ajoute des commandes pour l'endroit où va la citation. \footcite envoie la citation entière en note de bas de page ; \supercite compose le numéro en exposant. \autocite est d'un cran plus abstrait : il devient \cite, \parencite, \footcite ou \supercite selon la valeur de l'option de package autocite (plain, inline, footnote, superscript). Rédigez le corps avec \autocite et un seul mot du préambule fera basculer tout le document entre citation entre parenthèses et citation en note — mais il ne peut pas remplacer \textcite, car une citation qui fait partie de la phrase ne se laisse pas déplacer mécaniquement en note. Le plus savoureux du lot est \smartcite : il se comporte comme \footcite dans le corps et comme \parencite à l'intérieur d'une note ; il regarde où il a atterri et change de forme.
| Commande (biblatex) | Sortie (style=authoryear) | Rôle |
|---|---|---|
\textcite | Knuth (1986) | textuelle ; prend la place du sujet |
\parencite | (Knuth 1986) | parenthétique ; crochets dans les styles numériques |
\cite | Knuth 1986 | libellé nu ; rien n'est ajouté autour |
\autocite | (Knuth 1986) | suit l'option de package autocite |
\footcite | note : Knuth 1986. | la citation entière passe en note, avec un point final |
\smartcite | note : Knuth 1986. | comme \footcite dans le corps, comme \parencite en note |
\supercite | numéro en exposant, sans crochets | styles numériques uniquement ; les notes sont écartées |
\cite* | 1986 | l'année seule dans les styles auteur-année, le titre seul en auteur-titre |
Indiquer page et chapitre : [p.~5] et la note préalable [see][p.~94]
natbib et biblatex prennent tous deux deux arguments optionnels : le premier est une note préalable, le second une note finale. \citep[see][p.~94]{knuth} imprime (see Knuth, 1986, p. 94) et \citet[chap.~2]{lamport} donne Lamport (1994, chap. 2). Les repères autres que la page — chapitre, section, figure, ligne — s'écrivent de la même façon dans la note finale. L'amorce que le \cite nu ne savait pas exprimer devient ici possible.
Voici le piège où même les habitués tombent une fois : lorsqu'un seul argument optionnel est donné, il est lu comme note finale. Écrire \citep[e.g.,]{knuth} en pensant à une amorce produit donc (Knuth, 1986, e.g.,), le « e.g., » échoué derrière la référence. biblatex se comporte de même : \parencite[see]{knuth} donne (Knuth 1986, see). La forme correcte conserve un second argument vide : \citep[e.g.,][]{knuth}. Deux crochets à la suite ressemblent à une faute de frappe, mais c'est bien la bonne écriture.
biblatex ajoute ici une petite délicatesse : lorsque la note finale n'est rien d'autre qu'un nombre, elle est lue comme un numéro de page et le p. est fourni automatiquement — \parencite[25]{knuth} donne (Knuth 1986, p. 25). Le préfixe n'est pas figé non plus : un champ pagination dans l'entrée .bib le redirige. Avec pagination = {verse}, le même [17] sort en v. 17 ; avec section, en § 17. Pour un manuscrit portant sur des œuvres classiques ou des partitions qui ne se comptent pas en pages, ce seul champ aligne toutes les citations d'un coup.
% one optional argument is always the post-note
\citep[p.~94]{knuth} % -> (Knuth, 1986, p. 94)
% two optional arguments are pre-note and post-note
\citep[see][p.~94]{knuth} % -> (see Knuth, 1986, p. 94)
% a pre-note alone still needs the empty second bracket
\citep[e.g.,][]{knuth} % -> (e.g., Knuth, 1986)
\citep[e.g.,]{knuth} % -> (Knuth, 1986, e.g.,) <- wrong
% biblatex reads a bare number as a page and adds "p."
\parencite[25]{knuth} % -> (Knuth 1986, p. 25)Citer plusieurs ouvrages à la fois : trier et compresser les numéros
Plusieurs ouvrages se confient toujours à une seule commande. \citep{knuth,lamport} donne (Knuth, 1986; Lamport, 1994), ou [1, 2] dans un style numérique. Écrire \cite{knuth}\cite{lamport} les laisse sous la forme [1][2], séparés et impossibles à trier : le style ne peut pas ranger ce qu'il n'a jamais vu ensemble. Il en va de même pour les citations textuelles — le \textcite{knuth,lamport} de biblatex imprime Knuth (1986) and Lamport (1994) en fournissant la conjonction, si bien que la phrase reste une phrase.
Lorsque chaque ouvrage réclame sa propre pagination, on emploie les formes plurielles de biblatex, les listes de citations qualifiées. \textcites[59]{knuth}[12]{lamport} imprime Knuth (1986, p. 59) and Lamport (1994, p. 12), chaque clé portant ses propres notes préalable et finale. La série est complète : \parencites, \footcites, et ainsi de suite. natbib n'a pas d'équivalent ; si les notes diffèrent d'un ouvrage à l'autre, on juxtapose \citep[p.~59]{knuth} et \citep[p.~12]{lamport} et l'on écrit soi-même les mots de liaison.
Pour garder le style numérique en soignant seulement son apparence, le paquet cite de Donald Arseneau est la voie la plus simple. Le seul \usepackage{cite} rend le \cite standard plus habile : il trie les numéros par ordre croissant et compresse les suites consécutives en plages. Si \cite{c,a,b,e} pointe vers les entrées 2, 3, 4 et 6, la sortie est [2–4, 6]. Ses options : superscript (alias super) pour les numéros en exposant, nosort pour désactiver le tri, nocompress pour désactiver les plages, nospace pour resserrer les espaces et nobreak pour interdire les coupures de ligne. natbib et biblatex apportent toutefois leur propre tri et leur propre compression — natbib avec les options sort et sort&compress — et cite y devient inutile.
D'où vient le numéro : thebibliography et \bibitem
Le numéro qu'imprime \cite{key} provient du \bibitem portant la même clé. La façon la plus élémentaire d'écrire la liste à la main est l'environnement thebibliography, où chaque \bibitem{key} ... représente une référence. Elles sont numérotées 1, 2, 3… dans leur ordre d'apparition, et \cite va chercher le numéro correspondant. Le {99} de \begin{thebibliography}{99} est l'argument du libellé le plus large, d'où se déduit la largeur de la colonne des étiquettes : {99} à partir de dix entrées, {9} en deçà. Une valeur fausse désaligne les numéros et rend les retraits irréguliers. Pour un libellé personnel au lieu d'un numéro, il suffit d'écrire \bibitem[KL94]{lamport} : [KL94] devient l'étiquette, et \cite{lamport} l'imprime aussi.
\begin{thebibliography}{99}
\bibitem{knuth}
Donald E. Knuth, \emph{The \TeX book}, Addison-Wesley, 1986.
% an optional argument replaces the automatic number
\bibitem[KL94]{lamport}
Leslie Lamport, \emph{\LaTeX: A Document Preparation System},
2nd ed., Addison-Wesley, 1994.
\end{thebibliography}Un thebibliography écrit à la main convient à deux situations : une poignée de références, ou une mise en forme que l'on veut maîtriser jusqu'à la virgule. Au-delà, ranger les données bibliographiques dans un fichier .bib sous forme d'enregistrements non formatés et laisser BibTeX ou biber construire la liste est plus rapide, plus fiable et réutilisable. Numérotation, tri et style suivent alors automatiquement les consignes, et le même .bib se partage entre plusieurs manuscrits. L'essentiel est que rien ne change du côté de la rédaction : \cite{knuth} cherche une entrée .bib au lieu d'un \bibitem, et toutes les commandes de cette page restent valables telles quelles.
Citations imprimées en [?] : Citation ... undefined
[?] signifie qu'au moment où la page a été composée, le fichier .aux ne contenait aucun libellé pour cette clé. Le journal affiche LaTeX Warning: Citation 'nosuchkey' on page 1 undefined on input line 4. puis, en fin de passe, le récapitulatif LaTeX Warning: There were undefined references. Il n'y a que deux causes : trop peu de passes ou une clé qui ne correspond pas.
Le nombre de passes fonctionne exactement comme pour la numérotation et les références croisées. La première passe écrit le numéro de chaque \bibitem dans le fichier .aux ; la seconde le relit et le place à chaque \cite. Avec BibTeX ou biber dans la boucle, l'ordre est latex → bibtex (ou biber) → latex → latex, et sauter l'étape du milieu laisse [?] en place. Côté clé, outre la simple faute de frappe, modifier le .bib sans relancer BibTeX donne le même symptôme. Supprimer le .aux et repartir de zéro est le moyen le plus rapide de distinguer les deux cas.
biblatex n'imprime pas de point d'interrogation : il imprime la clé elle-même. \parencite{nosuchkey} sort en (nosuchkey), et le journal porte Package biblatex Warning: The following entry could not be found .... L'effet sur la page est déconcertant, mais comme la clé manquante est écrite noir sur blanc, l'origine se retrouve plus vite.
Un dernier symptôme n'appartient qu'à natbib : on emploie \citet, la sortie donne (author?) [1], et le journal indique Package natbib Warning: Author undefined for citation 'knuth'. Le tort n'est pas à la commande de citation mais au style .bst. Un style qui ignore natbib — celui que sélectionne \bibliographystyle{plain}, par exemple — n'écrit pas de libellés avec auteur et année dans ses lignes \bibitem. Passer à un style compatible, comme \bibliographystyle{plainnat}, résout la chose. Si \citet semble ne pas fonctionner, il faut soupçonner le .bst en premier.
natbib ou biblatex : quelles commandes de citation employer
N'en charger qu'un seul et s'y tenir jusqu'au bout : voilà toute la réponse pratique. Les deux résolvent la même tâche avec des conceptions différentes, et les charger ensemble fait entrer leurs noms de commandes en collision. Si la revue ou la conférence fournit une classe ou un style, on suit d'abord ce qu'elle demande ; quantité de classes de sociétés savantes présupposent natbib. Quand le choix est libre, biblatex l'emporte sur la gestion d'Unicode, les documents multilingues, les citations en note et l'étendue des styles propres à chaque discipline. natbib est en service depuis 1993 et dispose d'un stock considérable de fichiers .bst compatibles, raison pour laquelle les anciens modèles continuent de le retenir.
Quel que soit le choix, l'ordre des décisions ne change pas. Déterminer d'abord si la citation est un élément de la phrase et choisir en conséquence \citet/\textcite ou \citep/\parencite. Ajouter ensuite un repère par les arguments optionnels si nécessaire, et grouper plusieurs ouvrages par une liste de clés séparées par des virgules ou par une liste qualifiée. L'apparence — forme des parenthèses, numérique ou auteur-année, séparateurs — vient en dernier, et cette couche relève des options de package et du fichier .bst ou de style. En écrivant dans cet ordre, un changement de support ne coûte jamais que la dernière couche.