Notes et Références croisées
17 Sep. 2006
- Auteur : tonton nestor
- Responsable : TrustRobot
- Score ( voter ) :



- Connexes : Même auteur | Même responsable | Historique
1. Notes :
1.1 Notes de bas de page :
Je resterai ici dans le classique : LaTeX gère très bien les notes. Leurs numéros sont initialisés à chaque nouveau chapitre. Pour faire une note, il suffit de suivre cette syntaxe :
Ici je fais une note\footnote{Voilà voiloù}
Cette syntaxe, comme vous l'aurez remarqué, à l'inconvénient de ne pas laisser d'espace entre le numéro de la note et la note elle-même. Il existe une ruse de sioux pour introduire un espace en utilisant le mode mathématique :
Ici je fais une note\footnote{$\,$Voilà voiloù}
Afin de ne pas se compliquer la vie, nous pouvons définir dans l'entête du document une nouvelle commande ressemblant à ceci :
\newcommand{\note}[1]
{\footnote{$\,$#1}}
Remarque : vous pouvez remplacer \, par \quad afin de rendre l'espace plus important, ou par une commande de votre choix.
1.2 Notes de bas de page dans l'environnement tabular :
La première possibilité sera une note en bas de page, mais encore une fois le numéro de note sera géré par l'utilisateur, et sera indépendant des numéros utilisés par LaTeX (l'utilisateur commencera sa numérotation à partir de 100 par exemple). Cette solution est suggérée par Jean-Marc LICHTLE (JML) dans son introduction à LaTeX. Enfin la seconde solution mettra en place aussi des notes en bas de page, mais cette fois se confondra avec la notation de LaTeX, toutefois délicate à mettre en place par l'utilisateur. Évidemment d'autres possibilités doivent exister. Avant tout, un peu de théroie : la commande \footnote utilisée précédemment ne peut pas être utilisée dans un tableau (environnement tabular) directement (à moins que l'environnement tabular soit compris dans un autre environnement). En conséquence il va falloir utiliser la combinaison de deux commandes : \footnotemark et \footnotetext. La première, comme son nom le suggère, met en place le numéro de la note dans le texte, la seconde écrit le texte de la note. Toutefois un problème se pose : \footnotemark incrémente le compteur de notes footnote, et la commande footnotetext se réfère à la dernière valeur du compteur footnote. Autrement dit l'utilisation du code suivant aura pour conséquence de mettre en place les numéro 1 et 2 (si ce sont les premières notes) dans le texte, mais affichera deux fois le numéro 2 en bas de page au niveau des notes :
Ici\footnotemark est ma première ligne\footnotemark.
\footnotetext{première note, numérotée 1 dans le texte, mais un deux est présent ici}
\footnotetext{seconde note}
Pour avoir les références de note correctes, il faudrait donc utiliser le code suivant comme vous vous en doutez :
Ici\footnotemark\footnotetext{première note}
est ma première ligne\footnotemark\footnotetext{seconde note}.
Ce qui revient ni plus ni moins à la commande \footnote. Le problème est que dans un tableau, même avec la commande protect, la commande \footnotetext ne sera pas prise en charge.
La première solution proposée par JML est de numéroter manuellement les notes en utilisant les commandes précédentes de la façon suivante : \footnotemark[n] et footnotetext[n]. n sera alors le numéro de la note. Le problème est que LaTeX n'en tiendra aucun compte par rapport à sa propre numérotation, ce qui implique que deux numéros 1 par exemple pourront être présents. On pourrait penser utiliser des lettres, mais cela ne semble pas possible. Aussi la solution comme le suggère JML est de commencer sa propre numérotation à partir de 100, afin d'éviter les éventuels croisements entre la numérotation de l'utilisateur et celle de LaTeX. Le code précédent donnerait donc avec cet usage :
Ici\footnotemark[100] est ma première ligne\footnotemark[101].
\footnotetext[100]{première note, numérotée 100}
\footnotetext[101]{seconde note numérotée 101}
Pour maintenant utiliser la seconde solution, voyons ce qu'il faut faire : dans un premier temps, il faut placer les \footnotemark dans le tableau. Ne sachant pas compter par nature (et oui), il serait bien que le décompte soit automatisé, nous allons donc introduire un nouveau compteur appelé notetab. Surtout, il ne faudra pas oublier de l'initialiser avant chaque environnement tabular prenant en charge des notes (écriture d'une commande \zero). Ensuite il faut réinitialiser le compteur de note footnote à la valeur de la première note du tableau (écriture d'une commande \initnt), puis écrire le texte de chaque note sans oublier d'incrémenter le compteur footnote. Grosso modo, nous en arrivons au code suivant dans le préambule du document source :
\newcounter{notetab}
\newcommand{\zero}{\setcounter{notetab}{0}}
\newcommand{\ntm}{\footnotemark\addtocounter{notetab}{1}}
\newcommand{\initnt}{\addtocounter{footnote}{-\value{notetab}}}
\newcommand{\ntt}[1]{%
\addtocounter{footnote}{1}
\footnotetext{#1}}
Petite discussion : la commande \newcounter permet de créer un nouveau compteur ; la commande \setcounter permet l'initialisation du compteur à une valeur ; la commande \addtocounter permet l'incrémentation (\stepcounter aurait pu être utilisée, ou en encore \refstepcounter) ; la commande \value permet de récupérer la valeur de notetab, le signe - pour réinitialiser footnote à la bonne valeur.
Sur un exemple, l'utilisation se fera ainsi :
\zero
\begin{tabular}{lr}
\hline\hline
Données\ntm & Exemples\ntm ?\\
\hline
La première donnée\ntm & l'exemple correspondant\ntm
\end{tabular}
\initnt
\ntt{voilà une note}
\ntt{et encore une}
\ntt{on veut être sûr que cela fonctionne\dots}
\ntt{la dernière pour la route :)}
Encore une fois, attention à ne pas oublier les commandes \zero et \initnt en début et fin de tableau.
À noter que les commandes permettant les calculs sur les compteurs (comme \addtocounter) nécessitent le package calc. Celui-ci est normalement déjà monté avec la classe du document, donc inutile de rajouter une ligne pour lui.
Une troisième solution existe : faire apparaître les notes en bas de tableau et non en bas de page. Cette solution est proposée dans la FAQ de LaTeX. Pour faire ceci, il va falloir enfermer le tableau dans un environnement minipage. Ce dernier a pour syntaxe :
\begin{minipage}[position]{longueur} mon texte \end{minipage}
La position correspond à l'alignement vertical avec le texte précédent : t pour haut, c pour center et b pour bas. La longueur représente la longueur de la minipage, on pourra choisir ici \textwidth (longueur du texte). Pour mettre en place les notes, il suffira alors d'utiliser la commande habituelle \footnote, la numérotation se fera alors avec des lettres et sera en conséquence indépendante de celle en bas de page. L'exemple précédent deviendra donc :
\begin{minipage}[c]{\textwidth}
\begin{tabular}{lr}
\hline\hline
Données\footnote{voilà une note} & Exemples\footnote{et encore une} ?\\
\hline
La première donnée\footnote{on veut être sûr que cela fonctionne\dots} & l'exemple correspondant\footnote{la dernière pour la route :)}
\end{tabular}
\end{minipage}
Pour retirer la délimitation horizontale des notes, vous pouvez ajouter la ligne suivante juste après \begin{minipage} :
\renewcommand{\footnoterule}{}
1.3 Notes en marge :
Celles-ci sont simplement réalisables à l'aide de la commande :
\marginpar{ma note}
Attention : les notes en marge ne sont pas numérotées. De plus les marges restent relativement petites, donc soyez bref, et certainement l'utilisation d'une police plus petite en améliorera l'apparence.
2. Références croisées :
J'entends par références croissées celle du type "voir chapitre 1984, page 9999"..., autrement dit ce que nous pourrions appeler liens hypertextes si ces derniers étaient gérés avec le format postscript (c'est le cas pour le .pdf). Elles sont réalisables assez simplement. La première chose à faire est de marquer l'endroit du texte auquel on voudra faire référence en utilsant pour cela la commande \label dont la syntaxe est :
\label{drapeau}
drapeau est le mot clé dont je me servirai pour établir ma référence. Attention il doit être unique. Si vous avez utilisé plusieurs fois la même clé, vous aurez comme avertissement lors de la compilation :
LaTeX Warning: There were multiply-defined labels.
Pour faire votre référence, vous disposez alors des deux commandes \ref{drapeau} et \pageref{drapeau}. La première inscrira le numéro de partie, chapitre, section, etc..., ou encore le numéro de la figure, du tableau, de l'équation ou autre environnement particulier, cela étant directement lié à l'emplacement de la commande \label. La commande \pageref, comme son nom l'indique, donnera le numéro de la page. Un exemple :
\section{Références croisées}\label{refc} %beaucoup plus loin : Pour faire des références croisées, reportez-vous à la section \ref{refc} page \pageref{refc}.
Si vous faites référence à une clé qui n'a pas été définie par la commande \label, des points d'interrogation appraîtrons dans le texte.
L'utilisation des références nécessites deux compilations successives. Un fichier avec l'extension .aux est créé lors de la première compilation et utilisé lors de la seconde.