Comment gérer les tableaux de plus d'une page ?
* Le package 'supertabular' permet de gérer automatiquement (ou
presque) les coupures de tableaux. Il est disponible sur
ftp://ftp.inria.fr/pub/TeX/CTAN/macros/latex/contrib/supertabular/.
Il calcule la longueur du tableau à chaque \\ et vérifie si la
fin de page est atteinte. Si oui, il coupe le tableau. Les
commandes à utiliser sont :
+ \tablefirsthead{...} pour définir le contenu de la première
occurrence de la tête du tableau. Cette commande est optionnelle.
+ \tablehead{...} pour définir le contenu de la tête des
tableaux suivants.
+ \tabletail{...} définit le contenu de la ligne qui doit être
ajoutée avant une coupure
+ \tablelasttail{...} définit le contenu de la dernière ligne
du tableau. Cette commande est optionnelle.
+ \topcaption{...}, \bottomcaption{...} et \tablecaption{...}
permettent de nommer un tableau soit au début ou à la fin du
tableau. \tablecaption{...} est l'option par défaut.
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\sl continued
from previous page}\\
\hline \multicolumn{1}{|c}{ Nombre}
& \multicolumn{1}{c}{Nombre$^2$}
& Nombre$^4$
& \multicolumn{1}{c|}{Nombre!} \\ \hline}
\tabletail{\hline\multicolumn{4}{|r|}{\small\sl Suite page
suivante~\ldots}\\\hline} \tablelasttail{\hline}
\bottomcaption{Fin.}
\par
\begin{supertabular}{| r at {\hspace{6.5mm}}|
r at {\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 \\
10 & 100 & 10000 & 3628800 \\
11 & 121 & 14641 & 39916800 \\
12 & 144 & 20736 & 479001600 \\
13 & 169 & 28561 & 6.22702080E+9 \\
14 & 196 & 38416 & 8.71782912E+10\\
15 & 225 & 50625 & 1.30767437E+12\\
16 & 256 & 65536 & 2.09227899E+13\\
17 & 289 & 83521 & 3.55687428E+14\\
18 & 324 & 104976 & 6.40237370E+15\\
19 & 361 & 130321 & 1.21645100E+17\\
20 & 400 & 160000 & 2.43290200E+18\\
\hline
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 \\
10 & 100 & 10000 & 3628800 \\
11 & 121 & 14641 & 39916800 \\
12 & 144 & 20736 & 479001600 \\
13 & 169 & 28561 & 6.22702080E+9 \\
14 & 196 & 38416 & 8.71782912E+10\\
15 & 225 & 50625 & 1.30767437E+12\\
16 & 256 & 65536 & 2.09227899E+13\\
17 & 289 & 83521 & 3.55687428E+14\\
18 & 324 & 104976 & 6.40237370E+15\\
19 & 361 & 130321 & 1.21645100E+17\\
20 & 400 & 160000 & 2.43290200E+18\\
\hline
1 & 1 & 1 & 1 \\
2 & 4 & 16 & 2 \\
3 & 9 & 81 & 6 \\
4 & 16 & 256 & 24 \\
5 & 25 & 625 & 120 \\
\end{supertabular}
\end{center}
%%%% fin exemple %%%%
* Le package 'longtable', de D. Carlisle, disponible sur
ftp://ftp.inria.fr/pub/TeX/CTAN/macros/latex/required/tools/, fonctionne de la même
manière mais mieux et permet de définir une taille de tableau
commune sur toutes les pages. Les commandes associées à ce
package sont \endfirsthead, \endhead, \endfoot et \endlastfoot.
\begin{longtable}
{|p{0.2\linewidth}|p{0.2\linewidth}|p{0.2\linewidth}|}
\hline
Premiere colonne & Deuxieme & Troisieme \endfirsthead
\hline
Premiere & Deuxieme & Troisieme \\
\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}|}{C'est fini} \\
\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}
au lieu de faire des calculs de largeurs de colonne, on peut
aussi mettre un \setlongtables dans le préambule et déclarer
ses tableaux comme à l'habitude en \begin{longtable}{|c|c|c|}
et LaTeX se charge du reste. Dans ce cas, l'ajustement des
colonnes peut nécessiter plusieurs (jusqu'à trois) compilations
enchaînées.
* Le package 'ltxtable' de D. Carlisle, disponible sur
ftp://ftp.inria.fr/pub/TeX/CTAN/macros/latex/contrib/carlisle/ permet de
profiter des fonctionnalités de tabularx et de longtable.