Ceci est une ancienne révision du document !


\question{Comment faire référence plusieurs fois à la même note de bas de page ?} %6.32 \label{footnote-multi-ref}

\reponse Il faut \emph{d\'ecomposer} la commande \cmd{footnote} en deux : la premi\`ere, \cmd{footnotemark}\oarg{numero}, place la marque de renvoi \`a la note de bas de page ; la seconde, \cmd{footnotetext}\oarg{numero}\marg{texte}, cr\'ee la note elle-m\^eme. La solution b\^ete serait donc de faire \c ca : \begin{noexemple} Ici, du bla-bla\footnotemark[1] avec un renvoi vers la premi\`ere note\footnotemark[2]. Si je veux \`a nouveau faire r\'ef\'erence \`a la premi\`ere note\footnotemark[1], c'est pas compliqu\'e. \footnotetext[1]{\`A propos de bla-bla.} \footnotetext[2]{Au sujet d'autre chose…} \end{noexemple}

\reponse La «~solution~» pr\'ec\'edente a le d\'esagr\'eable d\'efaut d'avoir le num\'ero «~en dur~» dans le code. Si on cr\'ee une nouvelle note de bas de page avant, il va falloir changer les num\'eros \`a la main. C'est totalement contraire \`a l'esprit de \LaTeX.

Une solution plus propre consiste \`a faire une r\'ef\'erence crois\'ee entre les notes de bas de page. L'exemple pr\'ec\'edent deviendra donc : \begin{noexemple} Ici, du bla-bla\footnote{\`A propos de bla-bla. \label{footnote}} avec un renvoi vers la premi\`ere note\footnote{Au sujet d'autre chose…}. Si je veux \`a nouveau faire r\'ef\'erence \`a la premi\`ere note\footnotemark[\ref{footnote}], c'est pas compliqu\'e. \end{noexemple}

Cependant, cette solution ne fonctionne pas \`a la premi\`ere compilation, car \cmd{footnotemark} ne re\c coit pas comme argument optionnel un num\'ero. Pour \'eviter ce probl\`eme, on pourra utiliser la commande suivante : \begin{noexemple} \makeatletter \def\myref#1{\expandafter\ifx\csname r@#1\endcsname\relax

     0\@latex@warning{Reference `#1' on page 
            \thepage \space undefined}%
\else\ref{#1}\fi}

\makeatother

Ici, du bla-bla\footnote{\`A propos de bla-bla. \label{footnote}} avec un renvoi vers la premi\`ere note\footnote{Au sujet d'autre chose…}. Si je veux \`a nouveau faire r\'ef\'erence \`a la premi\`ere note\footnotemark[\myref{footnote}], c'est pas compliqu\'e. \end{noexemple}

La macro \cmd{myref} affiche la r\'ef\'erence si elle existe, et \'ecrit $0$ et \'emet un message d'avertissement si elle n'existe pas.

3_composition/texte/renvois/faire_reference_plusieurs_fois_a_une_note_de_bas_de_page.1031171836.txt.gz · Dernière modification: 2002/09/04 22:37 par markey
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0