Licence CC BY-NC-ND

Annotations et références

C’est parti pour un nouveau chapitre. Nous allons voir les systèmes de références et d’annotations de LaTeX.

Notes

Il y a deux chapitres, nous avons parlé de la commande \thanks qui permettait d’obtenir une note de bas de page afin de donner des informations complémentaires à propos de l’auteur et du titre. Néanmoins, cette commande ne sert justement qu’à ça et l’utiliser en dehors des commandes \author et \title ne produira pas le résultat escompté. Nous allons maintenant voir comment faire pour obtenir des notes.

Notes de bas de pages

La commande \footnote

Pour écrire des notes de bas de page, nous pouvons utiliser la commande \footnote. Il suffit de la placer après le mot (ou le groupe de mots) à annoter en lui passant en paramètre la note en question. Cette note se retrouvera en bas de la page du texte annoté. LaTeX s’occupe de numéroter chacune des notes. Ainsi, le code…

\documentclass[a4paper, 12pt, french]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}

\begin{document}
   Ceci est un document avec une note de bas de page ici\footnote{voici la note}.
\end{document}

… Permet d’obtenir le résultat suivant.

Ceci est un document avec une note de bas de page ici1

Les notes de bas de page sont beaucoup plus utilisées que les notes de marges. Non seulement elles permettent d’écrire plus d’informations, mais en plus elles sont numérotées et donc sont plus précises que les notes de marge.

La commande \footnotemark

La commande \footnote répond à la plupart de nos besoins. Cependant, il peut arriver (c’est quand même assez rare) qu’elle ne soit pas satisfaisante. Ceci arrive majoritairement dans deux cas :

  • on obtient une erreur avec \footnote ;
  • on veut gérer soit même la numérotation (cas assez fantaisiste).

Nous pouvons alors utiliser la commande \footnotemark. Cette commande est à placer à côté du texte à annoter (comme \footnote), mais on ne lui passe pas le texte à annoter en argument. On lui passe en paramètre facultatif le numéro que l’on veut donner à la note. Puis, pour indiquer à LaTeX le texte associé à ce numéro, il faut utiliser la commande \footnotetext. Elle prend en paramètre le texte à annoter et en paramètre facultatif le numéro de la note. De cette manière, \footnotemark permet de choisir l’emplacement de la note, et \footnotetext son contenu. Ainsi, pour avoir la même note que précédemment il faut utiliser ce code.

\documentclass[a4paper, 12pt, french]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}

\begin{document}
   Ceci est un document avec une note de bas de page ici\footnotemark[1].
   \footnotetext[1]{voici la note}
\end{document}

Cette méthode nécessite deux compilations. La première pour lister toutes les \footnotemark et la seconde pour leur associer les notes.

Un des avantages de \footnotemark est de pouvoir faire référence plusieurs fois à la même note de la manière suivante.

\begin{document}
   Dans ce document, la même note de bas de age est ici\footnotemark[1], mais aussi ici\footnotemark[1].
   \footnotetext[1]{voici la note}
\end{document}

Notes de marges

Les notes de marges sont les premières notes que nous verrons. Elles consistent à placer du texte dans la marge tout simplement. Pour les utiliser, il faut utiliser la commande \marginpar. Elle prend en paramètre le texte à afficher dans la marge.

Les notes de marges ne sont pas numérotées. Elles sont simplement placées dans la marge à côté de l’endroit où elles ont été appelées. Dès lors, il est conseillé de ne faire que des notes courtes (et de réserver les notes de marges aux documents dont les marges sont grandes), ceci afin de pouvoir bien identifier où la note a été appelé dans le document et de ne pas avoir un document trop chargé.

Il vaut mieux éviter d’utiliser la commande \marginpar dans une autre commande. Si dans une commande \emph elle se comporte comme d’habitude, elle ne peut pas être utilisée dans une commande de sectionnement par exemple et peut provoquer des comportements inattendus.

Voyons maintenant un exemple d’utilisation de cette commande.

\documentclass[a4paper, 12pt, french]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}

\begin{document}
   Ceci est un document avec une note dans la marge \marginpar{voici la note}.
\end{document}

  1. voici la note

Le système de références

LaTeX dispose d’un système de références très puissant. Il permet de faire des références croisées très facilement et donc de renvoyer à un autre passage du document sans trop de soucis. Il permet ainsi de faire référence à une section, à une image et à d’autres parties du document. En fait, il permet même de rappeler la page où se trouve l’objet référencé. Ceci est utile notamment dans le cas de documents à imprimer. Dans le cas de documents destinés à rester numérique, on préférera placer des liens hypertextes plutôt que de donner la page.

Un système d’étiquettes

Le système de références de LaTeX est un système à base d’étiquette c’est à dire à base de label. On pose une étiquette à un endroit du document pour y faire référence plus tard. Ceci permet — à condition de bien nommer ses étiquettes — de pouvoir faire référence à n’importe quelle partie du document plutôt facilement.

Pour placer une étiquette, il faut utiliser la commande \label à l’endroit où on veut placer cette étiquette. Elle prend en paramètre un nom qui permettra d’identifier cette étiquette. Voici un exemple.

\section{une première section}
\label{etiquette vers une section}

Bien sûr, les noms doivent quand même être assez explicite et celui que nous venons d’utiliser ne l’est pas du tout et ne sera donc jamais utilisé.

En fait, il est d’usage de construire les noms d’étiquette en faisant précéder le nom choisi par le type de l’élément auquel on fait référence. Ainsi si on fait référence à une section on aura sec:nom (ou section:label) et si on fait référence à un tableau ce sera plutôt tab:nom. Cette convention permet d’être plus clair et plus précis. De plus, elle limite le nombre de collisions possibles dans les choix du noms. On peut ainsi choisir un même nom pour un tableau et pour une section. Notre code précédent devient celui-là.

\section{une première section}
\label{sec:etiquette vers une section}

Ici, le sec permet de savoir qu’il s’agit d’une étiquette pour une section, ce qui est très utile lorsqu’on a des problèmes. Bien sûr, lorsqu’on change le plan de notre document, il ne faut pas oublier de changer le sec en sous-sec par exemple.

Faire nos références

Come nous l’avons déjà dit, le système de références de LaTeX nous permet d’accéder à deux données de l’étiquette :

  • le numéro (tableau, section…) de l’objet étiqueté ;
  • la page de l’étiquette.

Pour obtenir le numéro, il nous faut utiliser la commande \ref. Elle prend en paramètre le nom d’une étiquette. LaTeX s’occupe de gérer les numéros et nous n’avons donc rien d’autre à faire que d’utiliser cette commande. Pour obtenir la page de l’étiquette, c’est cette fois la commande \pageref qu’il faudra utiliser. Elle prend elle aussi le nom d’une étiquette en paramètre.

Pour que les références apparaissent sur le document, il faudra compiler deux fois. La première compilation permet de récolter tous les labels et les numéros qui leurs sont associés (ils sont écrits dans le fichier .aux) et la seconde permet d’écrire ces numéros sur le document.

Si nous ne compilons qu’une fois, les numéros ne seront pas présents et il y aura à la place des ??. La même chose se produira si nous faisons une référence vers une étiquette qui n’existe pas. Si par contre aucun numéro n’apparaît, c’est qu’aucun numéro ne peut être associé à l’étiquette correspondante.

Un code serait donc de ce genre.

\documentclass[a4paper, 12pt, french]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}

\begin{document}
   \section{Notes}
   \label{sec:notes}
   Pour faire des notes, nous pouvons utiliser plusieurs commandes. L’une d’elle permet 
   d’avoir des notes de marges, les deux autres des notes de bas de page.

   \section{Les références}
   Dans ce document, nous avons parlé des notes dans la section \ref{sec:notes} qui est à 
   la page \pageref{sec:notes}.
\end{document}

Ce document ne ferait qu’une page et le résultat produit serait vraisemblablement celui-là.

Dans ce document, nous avons parlé des notes dans la section 1 qui est à la page 1.

Nous avons dit que la numérotation était gérée ; elle est vraiment gérée entièrement. Si par exemple nous faisons référence à une annexe, ce sera bien la numérotation alphabétique qui sera utilisé. En revanche, il nous faut noter que si on utilise une référence sans sectionnement (sans section, sans chapitre, etc.), les références ne seront pas numérotées et donc nous n’aurons pas de résultat.

Bien les utiliser

Conseils d’utilisations

Les systèmes d’annotations et de références doivent maintenant nous sembler simples à utiliser. Pourtant, ils sont pleins de petits pièges et des conseils d’utilisation ne seront pas de trop. Le meilleur conseil est à propos du nom des étiquettes qui se doit d’être clair.

Ce conseil peut sembler évident, mais non. Déjà, trouver un nom clair pour une étiquette n’est pas si facile.

Mais c’est quoi un nom clair au fait ?

C’est la question à laquelle il nous faut répondre.

Nous l’avons déjà dit, mais répétons le, un nom clair doit permettre de comprendre à quel type d’objet on fait référence. Nous le faisons en rajoutons les préfixes comme sec.

De plus, un nom clair est relativement court. En effet, les noms à rallonge sont rarement clairs et nous aurons sûrement des erreurs d’écriture du nom de l’étiquette. Cependant, il ne faut pas chercher à faire court à tout prix car un nom clair doit avant tout rappeler le sujet auquel on voudrait renvoyer. Par exemple, le nom sec:un n’est pas du tout clair sur ce point et pourtant il est très court. On comprend qu’il fait référence à la première section mais on ne sait pas du tout quel est le sujet de la première section en question. Et si on rajoutait une nouvelle section avant la première ? Il nous faudrait alors réécrire toutes nos étiquettes de section de ce type. Préférons alors une étiquette du genre sec:references si la section en question traite des références.

Ce n’est pas…

Ce système est très puissant et on pourrait penser à l’utiliser pour faire certaines choses qui ne sont en fait pas des références. N’oublions pas que LaTeX met un point sur la sémantique, alors utiliser des références lorsqu’il n’a pas lieu d’en utiliser, c’est faire (disons le franchement) du n’importe quoi. Donc voyons ce que n’est pas.

Un système d’index

Donc tout d’abord ce n’est pas un système d’index. Non, ce n’en est vraiment pas un ! Créer un index avec des références, c’est se fatiguer pour pas grand chose. Non seulement cela demanderait de créer une étiquette à chaque endroit du document ou le mot indexé est écrit, mais en plus ces étiquettes ne devraient pas avoir le même nom ce qui complique énormément les choses. Dans un document d’une petite dizaine de pages, cela n’est pas gênant, mais imaginons le mal que cela donnerait dans un document d’une cinquantaine de page.

Un système de bibliographie

Et ce n’est pas non plus un système de bibliographie. Nous pouvons toujours essayer de l’utiliser pour cela, mais ce serait fatiguant, pas beau et pas ergonomique. Là encore, il faut penser aux grands documents pour voir le désavantage de cette méthode.

Mais dans ce cas, comment on fait les index et les bibliographies ?

Il ne faut pas s’inquiéter pour cela. Nous verrons plus tard que si LaTeX a pour but de nous aider à écrire nos documents, d’autres logiciels ont pour but de nous aider à faire d’autres choses, notamment les bibliographies et les index. Ils s’intègrent parfaitement à LaTeX et permettent d’obtenir facilement le résultat attendu. C’est là encore l’un des points-forts de la philosophie des Texniciens : un outil pour faire une chose, mais pour la faire bien.


C’est la fin d’un nouveau chapitre. Celui-ci était plus court que le précédent et nous a permis de voir le système simple et flexible utilisé par LaTeX pour annoter un document.

Mais la vraie morale (et elle est à retenir) c’est qu’avec LaTeX on n’utilise pas n’importe quoi pour faire quelque chose, on utilise l’outil adapté. Couper sa viande avec une cuillère, c’est possible, mais utiliser un couteau c’est nettement mieux. Autant laisser la cuillère pour de la glace par exemple (où le couteau est cette fois inadapté). Cela ne marche pas que dans la vie courante. En informatique aussi, c’est mieux d’utiliser les outils adaptés.