Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
composition:tableaux:notes_de_bas_de_tableau [2016/10/16 07:58] jejust3_composition:tableaux:notes_de_bas_de_tableau [2022/01/01 20:07] (Version actuelle) – Changement de titre. jejust
Ligne 1: Ligne 1:
-\question{Comment créer des notes de bas de page dans un tableau ?} %7.8 +====== Comment mettre une note de bas de page dans un tableau? ======
-\label{footnote-tableau}+
  
-\reponse Pour des raisons trop longues \`a expliquer ici, il n'est pas +Pour des raisons trop longues à expliquer ici, il n'est pas possible d'utiliser directement la commande ''\footnote'' à l'intérieur d'un tableau:  
-possible d'utiliser directement la commande \cmd{footnote} \`a l'int\'erieur +un appel à ''\footnote'' ne conserve que l'appel de note tandis que la note elle-même est perdue par l'environnement ''tabular'' ou ses équivalents
-d'un tableau: un appel à \cmd{footnotene conserve que l'appel de +
-notela note elle-même est perdue+
-Une solution simple pour contourner le probl\`eme est d'inclure le tableau dans +
-une \env{minipage}. Dans ce cas, la note n'est pas perdue, mais elle sera +
-plac\'ee dans la \env{minipage}, donc juste au-dessous du tableau, et non en +
-bas de la page.  L'inconvénient est que \env{minipage} oblige à passer une +
-largeur explicite qui peut ne pas être adaptée au tableau dont on ne +
-connaît pas toujours la largeur finale.  Un recours possible pourra +
-être trouvé en l'environnement \env{varwidth} du package +
-\pack{varwidth}.  Reportez-vous à +
-l'exemple~\ref{expl=Utilisation_varwidth}.+
  
-\begin{docexemple}[2.2in,3.5in,2.2in,4.3in]{Utilisation de l'environnement +Ceci correspond à la recommandation typographique classique: notes de bas de page et tables ne devraient pas être mélangées. 
-    \env{varwidth}\label{expl=Utilisation_varwidth}} +Cependant, plusieurs solutions permettent de contourner cette recommandation. Elles sont regroupés en deux familles 
-\documentclass{article}+: celles travaillant avec des « notes de bas de table », particulièrement recommandées, et les autres d'utilisation plus ponctuelle 
 +(mais bien entendu fonctionnelles). 
 + 
 +===== Avec les méthodes utilisant des notes de bas de table ===== 
 + 
 +==== Les extensions “threeparttable” et “threeparttablex” ==== 
 + 
 +L'extension [[ctanpkg>threeparttable]] définit un environnement (du même nom) conçu pour faciliter la création de tables 
 +avec un titre et des notes de bas de table. Les références sont produites à l'aide de la commande ''tnote''
 +Quant aux descriptions, elles sont précisées à l'aide de l'environnement ''tablenotes''
 +L'exemple suivant met tout cela en pratique. 
 + 
 +<code latex exempleThreeparttable.tex> 
 +\documentclass[french]{article} 
 +\usepackage[utf8]{inputenc} 
 +\usepackage[T1]{fontenc} 
 +\usepackage{babel} 
 + 
 +\usepackage{threeparttable} 
 + 
 +\begin{document} 
 + 
 +\begin{center} 
 + \begin{threeparttable} 
 +  \caption{Les angles biaisés ($\beta$) pour $\fam0 Mu(H)+X_2$ et $\fam0 Mu(H)+HX$~\tnote{a}} 
 +  \begin{tabular}{rlcc}% ou tabularxetc. 
 +   \hline 
 +   &             & $\fam0 H(Mu)+F_2$      & $\fam0 H(Mu)+Cl_2$ \\ 
 +   \hline 
 +   & $\beta$(H)  & $80,9^\circ\tnote{b}$  & $83,2^\circ$       \\ 
 +   & $\beta$(Mu) & $86,7^\circ$           & $87,7^\circ$       \\ 
 +   \hline 
 +  \end{tabular} 
 +  \begin{tablenotes} 
 +   \item[a] pour la réaction d'abstraction, $\fam0 Mu+HX \rightarrow MuH+X$. 
 +   \item[b1 degré${} = \pi/180$ radians. 
 +  \end{tablenotes} 
 + \end{threeparttable} 
 +\end{center} 
 + 
 +\end{document} 
 +</code> 
 + 
 +Cette extension fonctionne bien avec le texte ordinaire et à l'intérieur de flottants. L'extension [[ctanpkg>threeparttablex]] prend en plus en charge les tables ''longtable''
 + 
 +==== L'extension “ctable” ==== 
 + 
 +L'extension [[ctanpkg>ctable]] développe le modèle de [[ctanpkg>threeparttable]] et utilise aussi les idées de [[ctanpkg>booktabs]]. La commande ''\ctable'' effectue la totalité du travail: mettre en forme la table, placer la légende et définir les notes. La « table » peut être composée de diagrammes et un paramètre optionnel de ''\ctable'' permet d'avoir là un flottant traité comme une figure, plutôt que comme une table. 
 + 
 +===== Avec d'autres méthodes ===== 
 + 
 +==== Avec l'environnement “minipage” ==== 
 + 
 +Une solution simple pour contourner le problème est d'inclure le tableau dans une ''minipage''. Cette méthode présente trois inconvénients : 
 +  * la note n'est pas perdue, mais elle sera placée dans la ''minipage'', donc juste au-dessous du tableau, et non pas en bas de la page ; 
 +  * la composition de la note, devenue une note de bas de table, n'a pas la présentation attendue ; 
 +  * ''minipage'' oblige à passer une largeur explicite qui peut ne pas être adaptée au tableau dont on ne connaît pas toujours la largeur finale. Un recours possible pourra être trouvé en l'environnement ''varwidth'' de l'extension [[ctanpkg>varwidth]], dont voici un exemple. 
 + 
 +<code latex exempleVarwidth.tex> 
 +\documentclass[french]{article} 
 +\usepackage[utf8]{inputenc} 
 +\usepackage[T1]{fontenc
 +\usepackage{babel}
  
 \usepackage{varwidth} \usepackage{varwidth}
Ligne 31: Ligne 81:
     \begin{tabular}{ll}            maximale \linewidth     \begin{tabular}{ll}            maximale \linewidth
       \hline       \hline
-      C\'epage     & Nouaison (\%) \\+      Cépage     & Nouaison (\%) \\
       \hline       \hline
       Chasselat  & 29\footnote{En 2001} \\       Chasselat  & 29\footnote{En 2001} \\
Ligne 40: Ligne 90:
     \end{tabular}     \end{tabular}
   \end{varwidth}   \end{varwidth}
-  \caption{Valeurs de nouaison pour quelques c\'epages}+  \caption{Valeurs de nouaison pour quelques cépages}
 \end{table} \end{table}
  
 \end{document} \end{document}
-\end{docexemple}+</code>
  
-\reponse Une première solution consiste à utiliser le package +==== En scindant la commande \footnote” ====
-\pack{threeparttable} qui définit un environnement du même nom. Il a été +
-conçu pour faciliter la création de tableaux avec un titre et des notes en +
-bas de tableau. Les références sont produites à l'aide de la commande +
-\cmd{tnote}. Quant aux descriptions, elles sont précisées à l'aide de +
-l'environnement \env{tablenotes}. L'exemple~\vref{ex=3parttab} met tout cela +
-en pratique.+
  
-\begin{Rq} +La commande ''\footnote'' peut être décomposée en deux commandes : 
-  pour l'instant, il n'y a pas de méthode commode et élégante pour numéroter +  * la commande ''\footnotemark'', qui place le numéro de la note en exposant ; 
-  automatiquement les notes. +  * et ''\footnotetext'', qui place le texte de la note en bas de la page. Cette dernière commande devra être exécutée en dehors du tableau.
-\end{Rq}+
  
-\begin{docexemple}[2in,5in,2in,1in]{Insertion de notes dans un tableau\label{ex=3parttab}} +Cette méthode simpledécrite dans le livre de Leslie Lamportdoit faire l'objet de beaucoup d'attention lorsque les notes de bas de page se multiplient et deviennent sources de confusionVoici un exemple de cette méthode
-\documentclass{article} +<code latex>
-\usepackage{threeparttable} +
-\begin{document} +
-\begin{center} +
- \begin{threeparttable} +
-  \caption{Les angles biais\'es ($\beta$) pour  +
-  $\fam0 Mu(H)+X_2$ et $\fam0 Mu(H)+HX$~\tnote{a}} +
-  \begin{tabular}{rlcc}% ou tabluarxetc. +
-   \hline +
-   &   & $\fam0 H(Mu)+F_2$ & $\fam0 H(Mu)+Cl_2$ \\ +
-   \hline +
-   &$\beta$(H)  & $80.9^\circ\tnote{b}$ +
-       & $83.2^\circ$ \\ +
-   &$\beta$(Mu) & $86.7^\circ$ & $87.7^\circ$ \\ +
-   \hline +
-  \end{tabular} +
-  \begin{tablenotes} +
-   \item[a] pour la r\'eaction d'abstraction, +
-     $\fam0 Mu+HX \rightarrow MuH+X$. +
-   \item[b] 1 degr\'e${} = \pi/180$ radians. +
-  \end{tablenotes} +
- \end{threeparttable} +
-\end{center} +
-\end{document} +
-\end{docexemple} +
- +
-\reponse Pour pallier le probl\`eme de la commande \cmd{footnote}, on peut la +
-d\'ecomposer en deux : la commande \cmd{footnotemark}, qui place le num\'ero +
-de la note en exposant, et \cmd{footnotetext}, qui place le texte de la note +
-en bas de la page.  Cette derni\`ere commande devra \^etre ex\'ecut\'ee en +
-dehors du tableau+
- +
-La m\'ethode simple est d\'ecrite dans l'exemple suivant: +
-+
-\begin{noexemple}+
 \begin{tabular}{ll} \begin{tabular}{ll}
   Pierre & 01.34.65.23.12 \\   Pierre & 01.34.65.23.12 \\
Ligne 101: Ligne 110:
   Jean-Claude & 03.23.76.45.01   Jean-Claude & 03.23.76.45.01
 \end{tabular}% \end{tabular}%
-\footnotetext{Je n'ai pas son num\'ero.} +\footnotetext{Je n'ai pas son numéro.} 
-\end{noexemple} +</code>
-+
-Notez en particulier le caractère \texcode{\%} suivant le +
-\eenv{tabular}.  Si vous ne le mettez pas, la note risque d'être +
-insérée sur la mauvaise page.+
  
-Cette m\'ethode pr\'esente cependant le probl\`eme suivant :  +<note> 
-si l'on a plusieurs notes dans le +Notez en particulier le caractère ''%'' suivant le ''\end{tabular}''. Si vous ne le mettez pas, la note risque d'être insérée sur la mauvaise page. 
-m\^eme tableau, les valeurs des compteurs ne seront pas les bonnes, puisque la +</note> 
-commande \cmd{footnotemarkva incr\'ementer plusieurs fois le compteur avant + 
-que ce m\^eme compteur soit utilis\'e par \cmd{footnotetext}. Une solution, +Cette méthode rencontre un problème si un tableau contient plusieurs notes. Les valeurs des compteurs ne seront pas les bonnes, puisque la commande ''\footnotemark'' va incrémenter plusieurs fois le compteur avant que ce même compteur soit utilisé par ''\footnotetext''. Une solution, pour contourner ce problème, est de mémoriser la valeur du compteur avant le tableau, et de remettre le compteur de notes à cette valeur avant d'exécuter les ''\footnotetext'' (qui, elles, n'incrémentent pas le compteur de notes). En voici un exemple. 
-pour contourner ce probl\`eme, est de m\'emoriser la valeur du compteur avant +<code latex>
-le tableau, et de remettre le compteur de notes \`a cette valeur avant +
-d'ex\'ecuter les \cmd{footnotetext}s (qui, elles, n'incr\'ementent pas le +
-compteur de notes) +
-Par exemple : +
-+
-\begin{noexemple}+
 \newcounter{footnoteaux} \newcounter{footnoteaux}
 \setcounter{footnoteaux}{\value{footnote}} \setcounter{footnoteaux}{\value{footnote}}
Ligne 130: Ligne 129:
 \setcounter{footnote}{\value{footnoteaux}}% \setcounter{footnote}{\value{footnoteaux}}%
 \stepcounter{footnote}% \stepcounter{footnote}%
-\footnotetext{Il a un r\'epondeur.}%+\footnotetext{Il a un répondeur.}%
 \stepcounter{footnote}% \stepcounter{footnote}%
-\footnotetext{Je n'ai pas son num\'ero.} +\footnotetext{Je n'ai pas son numéro.} 
-\end{noexemple}+</code>
  
-Une autre solution apportée sur \fctt{} est la définition de commandes +==== En redéfinissant les commandes \footmark et \foottext ==== 
-\cmd{footmarket \cmd{foottext} définies ainsi: + 
-% +Une autre solution apportée sur [[https://groups.google.com/forum/#!forum/fr.comp.text.tex|fctt]] consiste à redéfinir les commandes ''\footmark'' et ''\foottext''. 
-\begin{noexemple}+ 
 +<code latex>
 \usepackage{ifthen}        % Utilisation des booléens \usepackage{ifthen}        % Utilisation des booléens
 \newboolean{footmark}      % Un booléen \newboolean{footmark}      % Un booléen
Ligne 158: Ligne 158:
   \footnotetext   \footnotetext
 } }
-\end{noexemple} +</code> 
-% + 
-Les commandes s'utilisent ainsi (attention aux \texcode{\%}): +Les commandes s'utilisent ensuite ainsi (attention aux ''%'') : 
-% + 
-\begin{noexemple}+<code latex>
 \begin{tabular}{ll} \begin{tabular}{ll}
   Essai\footmark & Essai\footmark \\   Essai\footmark & Essai\footmark \\
Ligne 171: Ligne 171:
 \foottext{Une troisième}% \foottext{Une troisième}%
 \foottext{Une quatrième} \foottext{Une quatrième}
-\end{noexemple} +</code> 
-% + 
-Les restrictions sont les suivantes+Cette méthode présente quelques restrictions : 
-+  la méthode est inapplicable dans un flottant ''table'' ; 
-\begin{enumerate} +  * chaque commande ''footmark'' doit être suivie d'une commande ''\foottext'' ; 
-\item la méthode est inapplicable dans un flottant \env{table}, +  l'utilisation des arguments optionnels est déconseillée. 
-\item un paquet de \cmd{footmarkdoit être suivi du même nombre de + 
-      \cmd{foottext}, +==== Les extensions “longtable”, “tabularx” et “supertabular” ==== 
-\item l'utilisation des arguments optionnels est déconseillée. + 
-\end{enumerate}+Les notes au sein des tableaux produits à l'aide des extensions [[ctanpkg>longtable]], [[ctanpkg>tabularx]] et [[ctanpkg>supertabular]] fonctionnent mais ces extensions peuvent être moins flexibles que l'environnement de base ''tabular'' pour d'autres fonctionnalités. 
 + 
 +==== L'extension “mdwtab” ==== 
 + 
 +L'extension [[ctanpkg>mdwtab]] implémente les mêmes fonctionnalités que l'extension [[ctanpkg>array]] et, en prime, fait fonctionner les notes de bas de page et propose d'autres fonctionnalités pour améliorer les tableaux. Toutefois, n'envisagez cette solution que si votre document n'est pas trop complexe.  En effet, [[ctanpkg>mdwtab]] est incompatible avec bon nombre d'extensions.
  
-\reponse Les notes au sein des tableaux produits à l'aide des packages +==== L'extension “tablefootnote” ====
-\pack{longtable} et \pack{supertabular} fonctionnent, elles.+
  
-\reponse Le package \pack{mdwtab} implémente les mêmes fonctionnalités +L'extension [[ctanpkg>tablefootnote]] fournit une commande ''\tablefootnote'' qui traite le sujet avec une belle sobriété.
-que \pack{array} mais, en outre, refait fonctionner les notes de bas +
-de page.  Toutefois, n'envisagez cette solution que si votre document +
-n'est pas trop complexe.  En effet, \pack{mdwtab} est incompatible +
-avec bon nombre de packages.+
  
-% Joss Sun Nov 20 16:57:31 CET 2005 +==== L'extension “footnotehyper” ====
-%   La réponse suivante est fausse.  Je la commente. +
-%  +
-% \reponse Si l'on applique la m\'ethode pr\'ec\'edente pour placer +
-% une note de bas de page depuis un tableau cr\'e\'e avec +
-% \env{longtable} (donc en utilisant le package \pack{longtable}), la +
-% note risque de ne pas \^etre sur la m\^eme page que l'appel de note, +
-% puisque la note sera plac\'ee sur la page o\`u se termine le +
-% tableau. Voici comment contourner ce probl\`eme : +
-% \begin{noexemple} +
-% \begin{longtable}{ll} +
-% Pierre & 01.34.65.23.12\footnotemark \\ +
-% \noalign{footnotetext{Il a un r\'epondeur.}} +
-% Jean & 06.12.43.23.21 \\  +
-% Michel\footnotemark & \\ +
-% \noalign{\footnotetext{Je n'ai pas son num\'ero.}} +
-% Jean-Claude & 03.23.76.45.01 \\ +
-% ... & ... +
-% \end{longtable} +
-% \end{noexemple}+
  
-% Cette solution fonctionne \'egalement pour les tableaux classiques.+L'extension [[ctanpkg>footnotehyper]] fournit un environnement ''savenotes'' qui collecte toutes les notes de bas de page qu'il contient et les émet lorsqu'il prend fin. Ainsi, si vous placez votre environnement ''tabular'' dans un environnement ''savenotes'', les notes de bas de page apparaîtront comme souhaité. Vous pouvez également utiliser la commande ''\makesavenoteenv{tabular}'' dans le préambule de votre document et les tableaux se comporteront tous comme s'ils se trouvaient dans un environnement ''savenotes''.
  
-\endinput+----- 
 +//Source:// [[faquk>FAQ-footintab|Footnotes in tables]]
  
 +{{htmlmetatags>metatag-keywords=(LaTeX,tableaux,note de bas de page,tableau)
 +metatag-og:title=(Comment mettre des notes de bas de page dans un tableau)
 +metatag-og:site_name=(FAQ LaTeX francophone)
 +}}
3_composition/tableaux/notes_de_bas_de_tableau.1476604696.txt.gz · Dernière modification : 2016/10/16 07:58 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0