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 Le package \pack{fixfoot} permet de définir une note en bas de page, sous forme de commande que l'on pourra utiliser plusieurs fois. Voir l'exemple~\vref{ex=fixfoot}.

\begin{docexemple}{Plusieurs références à la même note avec % \pack{fixfoot}\label{ex=fixfoot}} \documentclass[a4paper]{article} % test file for fixfoot.sty % – see that file for licence conditions % first release to ctan 2000/02/09 \usepackage{fixfoot} \DeclareFixedFootnote{\blah}{blah di blah} \begin{document}

  \noindent       here we are again\blah

\par\noindent happy as can be\blah \clearpage\noindent all good friends\blah \par\noindent and jolly good company\blah \end{document} \end{docexemple}

\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 la suivante : \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 l'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 : % 1 2 3 4 5X 6 %23456789012345678901234567890123456789012345678901234567890 \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 : % 1 2 3 4 5X 6 %23456789012345678901234567890123456789012345678901234567890 \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éférence si elle existe, sinon elle écrit $0$ tout en avertissant l'utilisateur.

\endinput

3_composition/texte/renvois/faire_reference_plusieurs_fois_a_une_note_de_bas_de_page.1476604577.txt.gz · Dernière modification: 2016/10/16 09:56 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0