Ceci est une ancienne révision du document !
\question{Comment gérer les tableaux de plus d'une page ?} %7.2
\reponse Le package \pack{supertabular} permet de d\'efinir de longs tableaux, qui seront coup\'es automatiquement par \LaTeX si n\'ecessaire, pour changer de page. L'environnement s'appelle \env{supertabular}. \`A l'int\'erieur de cet environnement, on d\'efinit le contenu du tableau de la m\^eme fa\c con que dans l'environnement \env{tabular}. On peut, en plus, utiliser les commandes suivantes : \begin{descrcmd} \item[tablefirsthead\marg{…}] qui d\'efinit le contenu de la
premi\`ere ligne du tableau ;
\item[tablehead\marg{…}] d\'efinit le contenu de la premi\`ere
ligne qui sera ins\'er\'ee en cas de changement de page au milieu du tableau ;
\item[tabletail\marg{…}] d\'efinit le contenu de la derni\`ere
ligne d'une page, en cas de changement de page au milieu du tableau ;
\item[tablelasttail\marg{…}] d\'efinit le contenu de la
derni\`ere ligne du tableau ;
\item[topcaption\marg{…}] et \cmd{bottomcaption}\marg{…}
permettent de mettre une l\'egende sur ce tableau, soit au d\'ebut, soit \`a la fin (ces deux commandes sont incompatibles, si l'on utilise les deux, seule la légende de fin sera appliquée). \cmd{tablecaption} place la l\'egende \`a sa position \og~habituelle~\fg, qui est par d\'efaut le haut du tableau.
\end{descrcmd}
Voici un exemple : % 1 2 3 4 5X 6 %23456789012345678901234567890123456789012345678901234567890 \begin{noexemple} \begin{center}
\tablefirsthead{\hline \multicolumn{1}{|c}{Nombre} & \multicolumn{1}{c}{Nombre$^2$} & Nombre$^4$ & \multicolumn{1}{c|}{!Nombre} \\ \hline} \tablehead{\hline \multicolumn{4}{|l|}% {\small\textsl{suite du tableau}}\\ \hline \multicolumn{1}{|c}{ Nombre} & \multicolumn{1}{c}{Nombre$^2$} & Nombre$^4$ & \multicolumn{1}{c|}{Nombre!} \\ \hline} \tabletail{\hline \multicolumn{4}{|r|}% {\small\textsl{% Suite \`a la page suivante...}}\\ \hline} \tablelasttail{\hline} \topcaption{Exemlp} \bottomcaption{Exemple de grand tableau} % \par \begin{supertabular}{| r@{\hspace{6.5mm}}| r@{\hspace{5.5mm}}| r | r|} 1 & 1 & 1 & 1 \\ 2 & 4 & 16 & 2 \\ 3 & 9 & 81 & 6 \\ 4 & 16 & 256 & 24 \\ 5 & 25 & 625 & 120 \\ 6 & 36 & 1296 & 720 \\ 7 & 49 & 2401 & 5040 \\ 8 & 64 & 4096 & 40320 \\ 9 & 81 & 6561 & 362880 \\ ... & ... & ... & ... \\ \end{supertabular}
\end{center} \end{noexemple}
\reponse Le package \pack{longtable} est assez semblable au pr\'ec\'edent, mais en un peu mieux. Il permet notamment d'avoir (modulo un nombre suffisant de compilations) la m\^eme largeur de colonnes dans tout le tableau, m\^eme si celui-ci est coup\'e sur plusieurs pages. Les en-t\^etes se d\'efinissent de mani\`ere un peu diff\'erente, comme dans l'exemple suivant :
% 1 2 3 4 5X 6 %23456789012345678901234567890123456789012345678901234567890 \begin{noexemple} \begin{longtable}{|p{0.2\linewidth}|
p{0.2\linewidth}|p{0.2\linewidth}|} \hline Premi\`ere colonne & Deuxi\`eme & Troisi\`eme \endfirsthead \hline Premi\`ere & Deuxi\`eme & Troisi\`eme \\ \multicolumn{3}{|p{0.6666\linewidth}|} {Suite...}\\ \endhead \hline \multicolumn{3}{|p{0.6666\linewidth}|} {Suite page suivante} \\ \hline \endfoot \hline \multicolumn{3}{|p{0.6666\linewidth}|} {Fin}\\ \hline \endlastfoot \hline 1 & 1 & 1 \\ 2 & 4 & 16 \\ 3 & 9 & 81 \\ 1 & 1 & 1 \\ 2 & 4 & 16 \\ 3 & 9 & 81 \\ 1 & 1 & 1 \\ 2 & 4 & 16 \\ 3 & 9 & 81 \\ 1 & 1 & 1 \\ 2 & 4 & 16 \\ 3 & 9 & 81 \\ ... & ... & ... \\
\end{longtable} \end{noexemple}