US

Grand tableaux

On est déjà à la dernière section de ce chapitre consacré à la mise en page avancée des tableaux. On s'intéresse cette fois-ci au tableaux qui sont trop grands pour tenir sur une page. Deux solutions sont envisageables, on peut soit décider de mettre le tableau en mode paysage ou alors on peut étendre le tableau sur plusieurs pages. Ces deux solutions sont abordées ici.

Rotation de tableau

Pour pouvoir pivoter un tableau, on va avoir recours à l'environnement turn disponible avec le package rotating. Cet environnement prend un paramètre qui est l'angle de rotation en degrés et son effet est de faire pivoter son contenu de cet angle.

1 
2 
3 
4 
5 
6 
7 
8 
\begin{turn}{90}
    \begin{tabular}{|>{\tt \color{blue}}l|>{\small}m{5cm}<{.}|}
        \hline
        ls & liste les fichiers et d'un \\ \hline
        cp & permet de faire une copie de fichiers ou \\ \hline
        mv & permet de des fichiers ou \\ \hline
    \end{tabular}
\end{turn}
listing l13.16 Rotation de tableau avec l'environnement turn
Rotation de tableau avec l'environnement turn
fig l13.14 Rotation de tableau avec l'environnement turn

Notez que pour obtenir cet effet, on peut tout aussi bien utiliser la commande rotatebox du package graphicx vue au chapitre 11.

Maintenant, comment faire pour pivoter un tableau avec une légende, c'est-à-dire un tableau créé avec l'environnement table. On obtient ainsi un environnement flottant et on ne pourra pas le pivoter avec l'environnement turn. Heureusement, pour faire une rotation de 90 ou 270 degrés, le package rotating propose l'environnement sidewaystable qui fonctionne de manière similaire à l'environnement sidewaysfigure rencontré au chapitre 11.

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
\begin{sidewaystable}
    \center
    \begin{tabular}{|>{\tt \color{blue}}l|>{\small}m{5cm}<{.}|}
        \hline
        ls & liste les fichiers et d'un \\ \hline
        cp & permet de faire une copie de fichiers ou \\ \hline
        mv & permet de des fichiers ou \\ \hline
    \end{tabular}
    \caption{Commandes de manipulation de fichiers}
\end{sidewaystable}
listing l13.17 Rotation de tableau avec l'environnement sidewaystable
Rotation de tableau avec l'environnement sidewaystable
fig l13.15 Rotation de tableau avec l'environnement sidewaystable

Le tableau sera automatiquement orienté de 90 ou 270 degrés selon qu'il se trouve sur une page paire ou impaire. Une seule contrainte apparait avec l'utilisation de cet environnement, le tableau sera obligatoirement placé sur une page séparée.

Pour orienter de manière automatique n'importe quoi d'autre qu'un flottant de 90 ou 270 degrés selon la page, on peut aussi utiliser l'environnement sideways. Pour pouvoir pivoter une structure compliquée, il convient de la placer dans une minipage comme le montre l'exemple suivant.

1 
2 
3 
4 
5 
6 
 
7 
8 
 
9 
10 
11 
Et voici un petit extrait : \\
 
\begin{sideways}
    \begin{minipage}{10cm}
        \begin{quote}
        Il l'observa, tailler ses rosiers. Elle avait une silhouette magnifique, toute en longueur, mais pourtant, on la devinait sportive et tonique. Il prit le temps de la .
 
        Sa robe rouge, mais la coupe parfaite la moindre des formes de son corps de . Le simplement ensorcelant. [...]
        \end{quote}
    \end{minipage}
\end{sideways}
listing l13.19 Rotation avec l'environnement sideways
Rotation avec l'environnement sideways
fig l13.16 Rotation avec l'environnement sideways

Tableau sur plusieurs pages

Lorsqu'un tableau est trop long pour tenir sur une seule page, on aimerait pouvoir faire en sorte qu'il s'étende sur plusieurs pages et on peut le faire en utilisant l'environnement longtable à la place de tabular. L'environnement est défini dans le package du même nom.

Tableau sur plusieurs pages avec longtable
fig l13.17 Tableau sur plusieurs pages avec longtable

La figure précédente montre un tableau qui a été mis en mode paysage et qui s'étend sur deux pages. Vous pouvez voir le résultat sous forme de PDF pour mieux voir le tableau et surtout remarquer que l'entête du tableau est différente entre les deux page, en effet, une partie n'apparait que sur la première page tandis qu'une autre est répétée sur chaque page.

L'utilisation est assez simple, on utilise donc l'environnement longtable. Ensuite, on peut utiliser des commandes pour marquer les lignes qui doivent être répétées ou pas sur les différentes pages.

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
\setlongtables
\begin{longtable}{|c|l|l|l|}
\hline \multicolumn{4}{|c|}{\bf Nom des pays avec leur capitale} \\ \hline
Code ISO & Forme courte & Forme longue & Capitale \\ \hline
\endfirsthead
\hline Code ISO & Forme courte & Forme longue & Capitale \\ \hline
\endhead
% Bas de toutes les pages
\hline
\endfoot
% Contenu du tableau
AF & Afghanistan (l') & la islamique d'Afghanistan & Kaboul \\
ZA & Afrique du Sud (l') & la d'Afrique du Sud & Pretoria, Le Cap \\
AL & Albanie (l') & la d'Albanie & Tirana \\
 
% [...]
 
\end{longtable}
listing l13.20 Tableau sur plusieurs pages avec longtable

La première chose à faire est donc de définir les lignes qui seront juste pour la première ou la dernière page et celles qui seront répétées sur toutes les pages. On ajoute simplement ces lignes comme on l'aurait fait pour un tableau standard et on les délimite en signalant leur fin à l'aide d'une commande spéciale. Le tableau suivant reprend ces commandes.

Commande Description
\endfirsthead Marque la fin des lignes qui n'apparaissent que sur l'entête de tableau de la première page
\endhead Marque la fin des lignes qui apparaissent au début du tableau sur chaque page
\endlastfoot Marque la fin des lignes qui n'apparaissent que en bas de tableau de la dernière page
\endfoot Marque la fin des lignes qui apparaissent à la fin du tableau sur chaque page
tab l13.5 Commandes pour délimiter les zones d'un tableau créé avec longtable

Enfin, il faut savoir qu'il faut parfois plusieurs compilations pour que le tableau soit bien rendu. De plus, la commande kill est utilisable et signale qu'une ligne sera utilisée pour le calcul de la largeur du tableau mais cette ligne ne sera pas imprimée. Enfin, la commande newpage est autorisée et permet de forcer un changement de page à un endroit précis du tableau.

  • Espace membre
  • Learning Center
  • Les forums
  • Livre d'or
  • Imprimer
  • Boutique
  • Info
  • Règlement
  • Erreur
  • Newsletter