Comment gérer les tableaux de plus d'une page ?

recherche d'un mot
* 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.

Retour à la FAQ LaTeX
Proposition de modification de la FAQ LaTeX :
bayartb at edgard point fdn point fr
Commentaire sur la version HTML de cette FAQ :
Fabien Torre
© Copyright 1997 Marie-Paule Kluth. Tous droits réservés.

Valid XHTML 1.0! Valid CSS!