Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
3_composition:texte:renvois:faire_reference_plusieurs_fois_a_une_note_de_bas_de_page [2002/09/04 22:37]
markey créée
3_composition:texte:renvois:faire_reference_plusieurs_fois_a_une_note_de_bas_de_page [2021/01/20 09:35] (Version actuelle)
yannick.tanguy Corrections de coquilles de texte et du titre.
Ligne 1: Ligne 1:
-\question{Comment faire référence plusieurs fois à la même note de bas de page ?} %6.32 +====== ​Comment faire référence plusieurs fois à la même note de bas de page? ======
-\label{footnote-multi-ref}+
  
-\reponse Il faut \emph{d\'ecomposerla commande ​\cmd{footnoteen deux : la +===== Avec l'​extension fixfoot ===== 
-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}+L'​extension [[ctanpkg>​fixfoot|fixfoot]] permet de définir une note en bas de page, sous forme de commande utilisable plusieurs fois. Par exemple : 
-cr\'ee la note elle-m\^emeLa solution ​b\^ete ​serait ​donc de faire \c ca + 
-\begin{noexemple}+<WRAP column 70ex> 
 +<code latex> 
 +\documentclass[a4paper]{article} 
 +\usepackage[utf8]{inputenc} 
 +\usepackage[T1]{fontenc} 
 + 
 +\usepackage{fixfoot} 
 +\DeclareFixedFootnote{\blah}{Notez,​ c'est important!} 
 + 
 +\begin{document} 
 +Donald Knuth\blah{} a déclaré qu'il ne développe  
 +plus \TeX ; il ne traite désormais plus que la correction 
 +des erreurs\blah{} qui lui sont remontées\blah{}.  
 +\end{document} 
 +</​code>​ 
 +</​WRAP>​ 
 +<WRAP column>​ 
 +<​latexdoc>​ 
 +\documentclass{article} 
 +\usepackage[utf8]{inputenc} 
 +\usepackage[T1]{fontenc} 
 +\usepackage[total={7cm,3cm}]{geometry} 
 + 
 +\usepackage{fixfoot} 
 +\DeclareFixedFootnote{\blah}{Notez c'est important!} 
 + 
 +\begin{document} 
 +Donald Knuth\blah{} a déclaré qu'il ne développe  
 +plus \TeX ; il ne traite désormais plus que la correction des erreurs\blah{} qui  
 +lui sont remontées\blah{}.  
 +\end{document} 
 +</​latexdoc>​ 
 +</​WRAP>​ 
 +<WRAP clear /> 
 + 
 +===== Avec la décomposition de la commande \footnote ===== 
 + 
 +La commande ''​\footnote''​ peut être //​décomposée//​ en deux :  
 +  * la première, ''​\footnotemark[''//''​numero''//''​]''​, place la marque de renvoi ​à la note de bas de page ;  
 +  * la seconde, ​''​\footnotetext[''//''​numero''//''​]{''//''​texte''//''​}'', crée la note elle-même 
 + 
 +Ainsi, la solution ​intuitive ​serait ​la suivante ​
 + 
 +<code latex>
 Ici, du bla-bla\footnotemark[1] avec un renvoi vers  Ici, du bla-bla\footnotemark[1] avec un renvoi vers 
-la premi\`ere ​note\footnotemark[2]. Si je veux \`a  +la première ​note\footnotemark[2]. Si je veux à  
-nouveau faire r\'​ef\'​erence \`a la premi\`ere ​ +nouveau faire référence à la première ​ 
-note\footnotemark[1],​ c'est pas compliqu\'​e+note\footnotemark[1],​ c'est pas compliqué
-\footnotetext[1]{\`A propos de bla-bla.}+\footnotetext[1]{À propos de bla-bla.}
 \footnotetext[2]{Au sujet d'​autre chose...} \footnotetext[2]{Au sujet d'​autre chose...}
-\end{noexemple}+</​code>​
  
-\reponse La <<~solution~>> pr\'​ec\'​edente ​a le d\'​esagr\'​eable d\'​efaut +Cependant, cette solution a le désagréable défaut ​d'​avoir le numéro « en dur » dans le code. Lors de la création d'une nouvelle note de bas de page avant celle qui a été traitée, il va falloir changer ​le numéro de celle qui été traitée à la main. C'est totalement contraire ​à l'​esprit de <​latex>​\LaTeX</​latex>​
-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 +Une solution plus propre consiste ​à faire une référence croisée ​entre les notes de bas de page. L'​exemple ​précédent ​deviendra donc : 
-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 +<code latex> 
-\cmd{footnotemarkne re\c coit pas comme argument optionnel un num\'​ero. Pour +Ici, du bla-bla\footnote{À propos de bla-bla. 
-\'​eviter ​ce probl\`eme, on pourra utiliser la commande suivante : +\label{footnote}} avec un renvoi vers la première 
-\begin{noexemple}+note\footnote{Au sujet d'​autre chose...}. Si je 
 +veux à nouveau faire référence à la 
 +première note\footnotemark[\ref{footnote}],​ c'​est 
 +pas compliqué. 
 +</​code>​ 
 + 
 +Cependant, cette solution ne fonctionne pas à la première ​compilation,​ car la commande ''​\footnotemark'' ​ne reçoit ​pas comme argument optionnel un numéro. Pour éviter ​ce problème, on pourra utiliser la commande suivante : 
 + 
 +<code latex>
 \makeatletter \makeatletter
-\def\myref#​1{\expandafter\ifx\csname r@#​1\endcsname\relax +\def\myref#​1{
-       ​0\@latex@warning{Reference `#1' on page +  ​\expandafter\ifx\csname r@#​1\endcsname\relax 
 +    0\@latex@warning{Reference `#1' on page 
               \thepage \space undefined}%               \thepage \space undefined}%
-  \else\ref{#​1}\fi}+  \else 
 +    ​\ref{#1}
 +  ​\fi}
 \makeatother \makeatother
  
-Ici, du bla-bla\footnote{\`A propos de bla-bla. +Ici, du bla-bla\footnote{À propos de bla-bla. 
-\label{footnote}} avec un renvoi vers la premi\`ere ​ +\label{footnote}} avec un renvoi vers la première 
-note\footnote{Au sujet d'​autre chose...}. Si je veux  +note\footnote{Au sujet d'​autre chose...}. Si je 
-\`a nouveau faire r\'​ef\'​erence \`a la premi\`ere +veux à nouveau faire référence à la 
-note\footnotemark[\myref{footnote}],​ c'est pas compliqu\'e. +première ​note\footnotemark[\myref{footnote}],​ 
-\end{noexemple}+c'est pas compliqué. 
 +</​code>​ 
 + 
 +La commande ''​\myref'' affiche la référence si elle existe, sinon elle écrit $0$ tout en avertissant l'​utilisateur.
  
-La macro \cmd{myref} affiche la r\'​ef\'​erence si elle existeet \'​ecrit $0$ et \'emet +{{htmlmetatags>​metatag-keywords=(LaTeX,notes de bas de page,​footnote) 
-un message d'​avertissement si elle n'​existe pas.+metatag-og:​title=(Comment faire référence plusieurs fois à la même note de bas de page) 
 +metatag-og:​site_name=(FAQ LaTeX francophone) 
 +}}
  
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