Comment utiliser la commande “cite” dans un “caption” ?

  • La commande \cite est une commande dite « fragile », il faut la « protéger » pour l’inclure dans des commandes telles que \caption, les commandes de sectionnement, etc. On écrira par exemple :

\caption{Une figure extraite de~\protect\cite{doc}}

Note

Les versions récentes de LaTeX définissent \cite à l’aide de \DeclareRobustCommand pour qu’elle ne soit pas fragile, mais on peut parfois tomber sur des packages qui la redéfinissent comme une commande « fragile ».

  • Ce n’est pas le seul problème que l’on peut rencontrer lors de l’utilisation de \cite dans un \caption. Avec le style de bibliographie unsrt, on peut aussi être confronté à un problème de numérotation. En effet, on veut que les références soient numérotées dans l’ordre où elles apparaissent, or le fait de rajouter une table des figures (ou des matières…) peut changer cet ordre.

Heureusement, le package notoccite est là pour éviter que les citations présentes dans la table des figures (et consorts) n’interviennent dans l’ordre de numérotation. Essayer de compiler les fichiers sources notoccitebib.bib et notoccitetex.tex en guise d’illustration.

<WRAP column half>

@Misc{DOC,
          author =       {Toto},
           title =       {Blabla}
}
@Misc{DOC2,
          author =       {Titi},
           title =       {Blabla, 2nd édition}
}

</WRAP> <WRAP column half>

\documentclass{book}

 \usepackage{notoccite}
 \bibliographystyle{unsrt}
 \usepackage{multido}

\begin{document}
 \tableofcontents

 Cf.~\cite{DOC}.

\chapter{Voir \cite{DOC2}}
 \multido{}{600}{blabla }

\bibliography{notoccitebib}
\end{document}

</WRAP> <WRAP clear />

Important

Dans le fichier d’exemple ci-dessus, on a utilisé des références en majuscules qui restent inchangées dans les en-têtes. Mais, si les références sont en minuscules, il faudra utiliser le package textcase.