Comment composer des tableaux de plus d'une page?
Le package supertabular permet de définir de longs
tableaux, qui seront coupés automatiquement par
si
nécessaire, pour changer de page. L'environnement s'appelle
supertabular
.
À l'intérieur de cet environnement, on définit le contenu du tableau
de la même façon que dans l'environnement tabular
. On peut, en plus,
utiliser les commandes suivantes :
\tablefirsthead{…}
définit le contenu de la première ligne du tableau ;\tablehead{…}
définit le contenu de la première ligne qui sera insérée en cas de changement de page au milieu du tableau ;\tabletail{…}
définit le contenu de la dernière ligne d'une page, en cas de changement de page au milieu du tableau ;\tablelasttail{…}
définit le contenu de la dernière ligne du tableau ;\topcaption{…}
et\bottomcaption{…}
permettent de mettre une légende sur ce tableau, soit au début, soit à la fin (ces deux commandes sont incompatibles, si l'on utilise les deux, seule la légende de fin sera appliquée).\tablecaption{}
place la légende à sa position « habituelle », qui est par défaut le haut du tableau.
Voici un exemple :
\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 à la page suivante...}}\\ \hline% } \tablelasttail{\hline} \topcaption{Exemple} \bottomcaption{Exemple de grand tableau} % \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}
![LaTeX
\documentclass[10pt,french]{article}
\usepackage[utf8]{inputenc}
\usepackage{supertabular}
\pagestyle{empty}
\begin{document}
\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 à la page suivante...}}\\
\hline%
}
\tablelasttail{\hline}
\topcaption{Exemple}
\bottomcaption{Exemple de grand tableau}
%
\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{document}](/lib/exe/fetch.php?media=wiki:latex:/img2e8a03a644afee328f99bd3a454e6423.png)
Le package longtable est assez semblable au
précédent, mais en un peu mieux. Il permet notamment d'avoir
(modulo un nombre suffisant de compilations) la même largeur de
colonnes dans tout le tableau, même si celui-ci est coupé sur
plusieurs pages. Les en-têtes se définissent de manière un peu
différente, comme dans l'exemple suivant :
\begin{longtable}{|p{0.2\linewidth}|p{0.2\linewidth}|p{0.2\linewidth}|} \hline Première colonne & Deuxième & Troisième \endfirsthead \hline Première & Deuxième & Troisième \\ \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}
![LaTeX
\documentclass[10pt,french]{article}
\usepackage[utf8]{inputenc}
\usepackage{longtable}
\pagestyle{empty}
\begin{document}
\begin{longtable}{|p{0.2\linewidth}|p{0.2\linewidth}|p{0.2\linewidth}|}
\hline
Première colonne & Deuxième & Troisième
\endfirsthead
\hline
Première & Deuxième & Troisième \\
\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{document}](/lib/exe/fetch.php?media=wiki:latex:/img324e5aab2614fb8226f5013314d822f1.png)