Notes de bas de page et notes marginales

Le \footnote de LaTeX cache un piège dans lequel tout le monde tombe une fois : une note écrite dans un tabular n’imprime jamais son texte. La marque reste dans le tableau, la note disparaît, et rien n’est signalé — ni erreur ni avertissement. Pire, la note perdue consomme quand même un numéro : la note suivante commence donc à 3 et non à 2. Le plus amusant est que LaTeX tombe dans le même piège : \maketitle compose les noms d’auteurs à l’intérieur d’un tabular, si bien que les classes standard remplacent discrètement \footnote par \thanks le temps du bloc de titre. Cette page parcourt \footnote, le couple \footnotemark / \footnotetext, la numérotation séparée dans une minipage, les réglages avec footmisc, les notes marginales avec \marginpar et marginnote, et enfin les notes de fin — mesures à l’appui.

Bases des notes : écrire \footnote et choisir la marque

Écrivez \footnote{texte} et LaTeX place un numéro en exposant à cet endroit, puis compose le texte correspondant en bas de la page. Le compteur footnote l’incrémente pour vous : vous n’attribuez jamais de numéro vous-même. Ce qui compte, c’est l’emplacement. La marque doit suivre immédiatement le mot annoté ; écrivez donc \footnote juste après ce mot, sans espace entre les deux. Un espace ou un retour à la ligne entre le mot et la commande subsiste dans le texte et éloigne la marque. Par rapport à la ponctuation, la marque se place normalement après le signe.

latex
TeX was born in 1978.\footnote{Written by Donald Knuth.}
Its maths setting is still the reference.\footnote{arXiv accepts LaTeX sources.}

% forced number: does NOT step the footnote counter
See the note above.\footnote[1]{Same note, referenced twice.}

Pour imposer un numéro précis, écrivez \footnote[num]{texte}. Cet appel n’incrémente pas le compteur footnote et utilise le numéro donné : c’est ainsi que deux endroits pointent vers la même note. L’apparence du numéro est régie par \thefootnote. Pour des symboles à la place des chiffres arabes, utilisez \renewcommand{\thefootnote}{\fnsymbol{footnote}} ; \fnsymbol associe 1 à 9 à l’astérisque, au poignard, etc., ce qui convient aux documents comportant peu de notes. \alph et \roman s’emploient de la même façon. Pour recommencer la numérotation à chaque chapitre, la formulation moderne est \counterwithin*{footnote}{chapter} de chngcntr, plutôt que de toucher à \@addtoreset.

Il est utile de connaître les longueurs qui façonnent le bloc de notes. Mesuré sous TeX Live 2024 dans article : \footnotesep, l’écart minimal entre deux notes, vaut 6.65pt, et \skip\footins, l’espace entre le texte et le bloc de notes, 9.0pt plus 4.0pt minus 2.0pt. Le petit filet qui les sépare est une macro, \footnoterule ; la redéfinir vide par \renewcommand{\footnoterule}{} supprime le trait.

La note dans le tableau n’apparaît pas : tabular, caption et titres

Parce que \footnote ne fonctionne correctement qu’en mode paragraphe externe. Dans un tabular, on se trouve dans une cellule, un mode différent : le corps de la note n’est donc jamais confié au réservoir de notes de la page (\footins) et se perd purement et simplement. À la composition, le symptôme est parfaitement silencieux. Compilez le document ci-dessous sous TeX Live 2024 : pdftotext renvoie Body text.1, A value2, B value — et seule la note 1 apparaît en bas de page. Le corps de la note 2 est introuvable, et le journal ne dit rien.

document.tex
\documentclass{article}
\begin{document}
Body text.\footnote{Real footnote at the page bottom.}

\begin{tabular}{ll}
  A & value\footnote{This footnote is inside a tabular -- the text is lost.} \\
  B & value \\
\end{tabular}

Next.\footnote{This one is numbered 3, not 2.}
\end{document}

Ce qu’on rate facilement, c’est le trou dans la numérotation. La note perdue incrémente quand même le compteur : la note écrite après le tableau porte donc le numéro 3, pas 2. En ne lisant que le corps du texte, on se demande où est passée la note 2. La même restriction vaut pour l’argument de \caption et des commandes de sectionnement, mais le symptôme y est bien plus bruyant : \caption{Cap\footnote{...}} s’arrête sur une erreur et affiche ! Argument of \@caption has an extra }. puis ! Paragraph ended before \@caption was complete. L’argument de \caption est un argument mobile, écrit dans la liste des tableaux, et un \footnote fragile ne peut pas y figurer sans protection.

Séparer marque et texte : \footnotemark, \footnotetext et \thanks

La solution consiste à placer la marque et le corps avec deux commandes distinctes. Dans le tableau ou la légende, n’émettez que la marque avec \footnotemark ; une fois revenu dans le texte, écrivez le contenu avec \footnotetext{…}. Pour garder les numéros synchronisés, le plus sûr est de les fixer explicitement, \footnotemark[7] avec \footnotetext[7]{…}.

  • \footnotemark — place seulement la marque, c’est-à-dire le numéro, à cet endroit. Sans argument, elle avance le compteur footnote d’une unité ; \footnotemark[num] utilise ce numéro sans avancer le compteur.
  • \footnotetext{texte} — place seulement le corps de la note en bas de page. Écrivez-la après \footnotemark, à un endroit en mode paragraphe externe ; \footnotetext[num]{texte} permet de faire correspondre le numéro.
latex
\begin{tabular}{ll}
  Item A & value\footnotemark[1] \\
  Item B & value \\
\end{tabular}
\footnotetext[1]{This value is provisional.}

Ce schéma — séparer la marque du texte — est intégré à LaTeX lui-même. Voici la définition de \thanks dans latex.ltx : c’est exactement un \footnotemark suivi d’un \footnotetext[numéro courant] différé. Et \@maketitle dans article.cls contient l’unique ligne \let \footnote \thanks. Les noms d’auteurs du bloc de titre sont composés dans \begin{tabular}[t]{c} : un \footnote ordinaire y perdrait son texte, alors la classe prend les devants et remplace \footnote par \thanks à l’intérieur du titre. Le contournement du piège qui ouvre cette page, LaTeX l’emploie lui-même.

latex.ltx
\DeclareRobustCommand\thanks[1]{\footnotemark
    \protected@xdef\@thanks{\@thanks
        \protect\footnotetext[\the\c@footnote]{#1}}%
}

En pratique, mettez dans \thanks{…} les affiliations, remerciements et coordonnées rattachés à \title ou \author. Pour qu’ils portent des symboles plutôt que des numéros, l’usage est d’écrire \renewcommand{\thefootnote}{\fnsymbol{footnote}} avant \maketitle et de rétablir juste après. Les classes standard exécutent \setcounter{footnote}{0} à la fin de \maketitle, de sorte que les notes du corps repartent de 1.

Les notes dans une minipage sortent en a, b, c

Parce que dans une minipage, \footnote bascule sur un autre compteur, mpfootnote, dont les marques sont des lettres minuscules. Mesuré, une note placée dans une minipage est sortie en a, sans rapport avec les 1 et 2 du corps, et s’est composée directement sous cette minipage plutôt qu’en bas de page. Une minipage se comporte donc comme une petite page autonome. Pour retrouver des chiffres, utilisez \renewcommand{\thempfootnote}{\arabic{mpfootnote}}.

Ce comportement est directement utile quand on veut que les notes d’un tableau se placent sous celui-ci. Enveloppez le tabular dans une minipage et \footnote ne disparaît plus : la note se compose juste sous le tableau. Acceptez toutefois qu’elle relève alors d’une numérotation distincte de celle des notes de la page. Pour des notes de tableau bien faites, le package dédié threeparttable, qui organise tableau, notes et légende en trois parties, ou l’environnement talltblr de tabularray, donnent un résultat plus soigné.

footmisc : renuméroter par page, passer aux symboles, couler les notes en paragraphe

Pour un contrôle plus fin du comportement standard, chargez \usepackage[options]{footmisc}. La version livrée avec TeX Live 2024 est la v6.0f du 2023/07/05. Les options se combinent : [perpage,symbol] a donné, mesuré, ∗ † ‡ en page 1 puis de nouveau ∗ † en page 2 — remise à zéro et marques symboliques agissant de concert.

OptionEffet
perpageRéinitialise la numérotation à chaque page, qui repart donc de 1.
symbolÉtiquette les notes par des symboles (∗ † ‡ …) plutôt que des numéros. symbol* ne symbolise que la marque dans le texte.
bottomForce les notes tout en bas de la page, même si celle-ci est courte.
paraCoule plusieurs notes en un seul paragraphe continu au lieu d’une par ligne.
multipleDétecte les marques adjacentes et les sépare proprement au lieu de les coller.
hangSort la marque à gauche et fait pendre les lignes suivantes de la note.
flushmarginCompose le corps de la note au bord gauche du bloc de texte, sans retrait.
noruleNe trace aucun filet entre le texte et les notes. splitrule donne un filet propre aux notes coupées.
stablePermet à \footnote de survivre dans les arguments mobiles, comme les titres.
marginalPlace la marque hors du bloc de texte, débordant dans la marge.
latex
% per-page numbering, notes pushed to the bottom, adjacent marks separated
\usepackage[perpage,bottom,multiple]{footmisc}

% width of the gap between the mark and the note body
\setlength{\footnotemargin}{1.8em}

footmisc atteint aussi la marge. L’écart entre la marque et le corps de la note — la marge gauche propre à la note — se règle par la longueur \footnotemargin fournie par le package. On dispose également de bottomfloats, abovefloats et belowfloats pour l’ordre vis-à-vis des flottants, de side pour des notes placées à côté du bloc de texte, et de ragged pour des notes non justifiées. La liste complète des noms figure dans les lignes \DeclareOption de footmisc.sty.

Mettre une note dans la marge : \marginpar et marginparwidth

Pour placer une courte note à côté du texte, écrivez \marginpar{texte}. Elle se compose en petit dans la marge, à la hauteur de la ligne où vous l’avez écrite. En composition recto verso (twoside), elle va dans la marge extérieure et change de côté automatiquement entre pages de gauche et de droite. Pour un libellé différent selon le côté, écrivez \marginpar[gauche]{droite} : le [gauche] entre crochets sert quand la note tombe dans la marge de gauche, le {droite} entre accolades quand elle tombe à droite. \reversemarginpar inverse le côté, \normalmarginpar rétablit la valeur par défaut.

Trois longueurs régissent la géométrie. Mesuré sous TeX Live 2024 : \marginparwidth vaut 65pt dans article et report, 125pt dans book, et grimpe à 121pt si l’on ajoute twoside à article. L’écart entre texte et note, \marginparsep, vaut 11pt, et \marginparpush, la distance minimale que les notes gardent entre elles, 5pt. À 65pt, un texte en corps 10 ne loge guère plus de six caractères de large : une longue note marginale dans un article non modifié s’empile donc presque mot par mot. Si les notes marginales font partie du projet, prévoyez \setlength{\marginparwidth}{...} ou une refonte des marges avec geometry.

\marginpar impose de fortes limites. Il est traité en interne comme un flottant, donc inutilisable dans une figure ou une table, dans une note de bas de page, ou dans un autre \marginpar. Placez-en un dans une figure et la compilation s’arrête sur ! LaTeX Error: Float(s) lost. Il n’accepte en outre qu’un seul paragraphe. Enfin, lorsque plusieurs notes tombent sur des lignes voisines, elles se poussent ; LaTeX les décale et signale LaTeX Warning: Marginpar on page 1 moved. Cet avertissement indique qu’une note s’imprime désormais loin de la ligne visée.

marginnote : une note marginale sans flottant, mais deux compilations

Pour contourner ces limites, utilisez le package marginnote et sa commande \marginnote{texte}. Il n’emploie aucun flottant : il fonctionne donc même dans la figure\marginpar échoue sur ! LaTeX Error: Float(s) lost. — testé sur le même document, la version \marginpar s’est arrêtée sur l’erreur et la version \marginnote a compilé sans broncher en plaçant la note dans la marge. Comme pour \marginpar, \marginnote[gauche]{droite} permet un libellé par côté, et \reversemarginpar est respecté. La version fournie avec TeX Live 2024 est la 1.4b, du 2018/08/09.

Il y a un prix. marginnote n’imprime rien du tout avant la deuxième compilation. À la première passe, le journal portait Package marginnote Info: xpos seems to be \@mn@currxpos ainsi que LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right., et la marge du PDF est restée vide. Le package décide du côté par le mécanisme des références croisées : seule la seconde passe place quelque chose dans la marge.

Enfin, \marginnote accepte un troisième argument après les accolades : un décalage vertical. La forme est \marginnote[gauche]{droite}[décalage]. Mesuré, une note avec [-3\baselineskip] s’est placée trois lignes au-dessus de son texte et une avec [3\baselineskip] trois lignes en dessous : négatif vers le haut, positif vers le bas. Vous en aurez besoin, car \marginnote place simplement la note à la hauteur de la ligne courante et n’effectue aucun évitement de collision, contrairement à \marginpar. Quand les notes se chevauchent, on les écarte à la main avec cet argument. Une \marginnote ne peut pas non plus se couper sur deux pages : pour du texte long en marge, prévoyez une autre mise en page (colonnes, ou une classe orientée notes latérales).

latex
\usepackage{marginnote}
% ...
A note beside the text.\marginnote{This is a margin note.}

% negative offset moves the note up by three lines
Another line.\marginnote{Nudged upwards}[-3\baselineskip]

% marginnote works here; \marginpar would give "Float(s) lost."
\begin{figure}[h]
  Some figure.\marginnote{Inside a float.}
  \caption{A figure with a margin note}
\end{figure}

Notes de fin : endnotes et enotez

Lorsque les notes doivent être rassemblées en fin de chapitre ou d’ouvrage plutôt qu’en bas de page, ce sont des notes de fin qu’il faut, pas des notes de bas de page. L’outil standard est le package endnotes : écrivez \endnote{texte} et placez \theendnotes là où les notes rassemblées doivent paraître. Mesuré, un document comportant deux notes de fin a laissé les marques 1 et 2 dans le texte et imprimé, à l’emplacement de \theendnotes, un titre « Notes » suivi des deux notes. Le libellé du titre est \notesname. C’est le choix habituel des ouvrages de sciences humaines et de tout document où trop de notes noirciraient la page.

Une solution plus moderne est enotez, écrit en expl3, qui expose le regroupement des notes, le style du titre et le format de la liste par options clé-valeur. Le choix est simple : endnotes pour ajouter quelques notes à un document existant, enotez lorsque les notes doivent être groupées par chapitre ou la présentation soigneusement conçue. Dans les deux cas, rappelez-vous ce que coûte le renvoi en fin d’ouvrage : le lecteur doit faire l’aller-retour entre texte et notes. Le mélange est possible — gardez en bas de page les notes réellement utiles et n’envoyez à la fin que les simples références.