LaTeX/Faire des tableaux
N. B. : Pour obtenir des tableaux typographiquement corrects, il est préférable de charger l’extension array
. On placera donc un
\usepackage{array}
dans le préambule du document. Cependant, sauf exception signalée, les exemples ci-dessous sont utilisables sans cette extension.
Commencons par faire un tableau assez simple qui contient 2 lignes et trois colonnes :
Fichier source | Résultat (en PostScript) |
---|---|
\begin{tabular}{lll}
1.1 & 1.2 & 1.3 \\
2.1 & 2.2 & 2.3 \\
\end{tabular}
|
L'environnement de base pour les tableaux en LaTeX est tabular
, il prend un argument obligatoire qui spécifie le nombre de colonnes du tableau :
\begin{tabular}{<colonnes>}
<lignes>
\end{tabular}
L'argument <colonnes> est une suite de caractères qui peuvent être :
- un
l
pour une colonne alignée à gauche (left) ; - un
r
pour une colonne alignée à droite (right) ; - un
c
pour une colonne centrée (center). - un
p{largeur}
pour une colonne avec un paragraphe en pavé (c'est-à-dire justifié, mais sans alinéa) ; la largeur est indiquée de manière classique, par exemplep{3cm}
oup{10em}
.
Les <lignes> sont représentées par les valeurs des colonnes séparées par des esperluettes &
et terminées par deux contre-obliques \\
.
Si l'on veut séparer les colonnes par des filets (traits) verticaux, on ajoutera des
tubes |
à l'endroit souhaité dans l'argument de l'environnement.
On peut aussi ajouter des filets horizontaux avec la commande \hline
.
Fichier source | Résultat (en PostScript) |
---|---|
\begin{tabular}{|l|c|r|}
\hline
colonne 1 & colonne 2 & colonne 3 \\
\hline
1.1 & 1.2 & 1.3 \\
2.1 & 2.2 & 2.3 \\
\hline
\end{tabular}
|
On peut faire suivre deux \hline
pour avoir une ligne double.
array
, qui règle un certain nombre de défauts.Fusionner les colonnes
[modifier | modifier le wikicode]Pour fusionner des colonnes, on utilise l'instruction \multicolumn
. Celle-ci se place à l'endroit où se trouve la première des cellules fusionnées. Sa syntaxe est :
\multicolumn{<nombre>}{<colonne>}{<texte>}
où
- <nombre> est le nombre de colonnes fusionnées ;
- <colonne> indique l'alignement (
l
,c
,r
) ; le filet de gauche est le filet normal de la première cellule (celui défini dans la définition du tableau), mais il faut définir le filet de droite.
Par exemple :
\begin{tabular}{|l|c|r|}
\hline
colonne 1 & \multicolumn{2}{c|}{colonnes 2 et 3} \\
\hline
1.1 & 1.2 & 1.3 \\
\hline
2.1 & 2.2 & 2.3 \\
\hline
\end{tabular}
donne
colonne 1 | colonnes 2 et 3 | |
1.1 | 1.2 | 1.3 |
2.1 | 2.2 | 2.3 |
Si l'on veut changer la composition du texte (alignement) pour une cellule, on peut utiliser \multicolumn{1}{<colonne>}{<texte>}
. À moins que la première colonne ne soit incluse, on n'indique que le filet de droite (par exemple {l|}
, le filet de gauche étant déterminé par la description générale.
Fusionner les lignes
[modifier | modifier le wikicode]La fusion des lignes stricto sensu nécessite le recours à une extension particulière, multirow
. Son utilisation est décrite dans la section Tableaux > Colonnes enveloppant des lignes multiples. Nous allons ici procéder à une approche simplifiée, consistant à laisser des cellules vides et à tracer un filet horizontal ne faisant pas toute la largeur.
Pour tracer ce filet, on utilise l'instruction
\cline{<lign1>-<lign2>}
Par exemple :
\begin{tabular}{|l|c|r|}
\hline
colonne 1 & \multicolumn{2}{c|}{colonnes 2 et 3} \\
\hline
1.1 & 1.2 & 1.3 \\
\cline{2-3}
& 2.2 & 2.3 \\
\hline
\end{tabular}
donne
colonne 1 | colonnes 2 et 3 | |
1.1 | 1.2 | 1.3 |
2.2 | 2.3 |
Tableau flottant
[modifier | modifier le wikicode]On peut laisser notre typographe virtuel placer le tableau ; on parle alors de tableau flottant. On indique l'endroit où l'on souhaiterait voir le tableau (à côté du texte le précédant dans le fichier source, ou bien en haut ou en bas d'une page), et LaTeX fait de son mieux en fonction des contraintes, notamment de la présence d'autres objets flottants. S'il n'arrive pas à placer le flottant sur la page en cours, il est « mis en attente » et sera placé plus loin. De plus, LaTeX numérote automatiquement le tableau, ce qui permet de dresser un index des tableaux.
Pour cela, on encapsule le tableau dans un environnement table
:
\begin{table}[<position>]
\begin{tabular}{<colonnes>}
[…]
\end{tabular}
\end{table}
où <position> est une lettre indiquant l'emplacement désiré :
h
pour qu'il soit à côté du texte précédant dans le source (here),t
: en haut d'une page (top),b
: en bas d'une page (bottom),p
: dans une page ne contenant que des flottants (regroupement des figures et tableaux).
Si l'on veut donner un titre et placer une étiquette permettant de faire référence au tableau (cf. Structuration du texte > Références), on utilisera la syntaxe suivante :
\begin{table}[<position>]
\caption{\label{<étiquette>} <titre>}
\begin{tabular}{<colonnes>}
[…]
\end{tabular}
\end{table}
[…]
Dans le tableau~\ref{<étiquette>} page~\pageref{<étiquette>}, […].
Si l'on veut centrer le tableau dans l'environnement, il est recommandé d'utiliser l'extension array
et la commande \centering
plutôt que l'environnement center
:
\usepackage{array}
[…]
\begin{table}[<position>]
\centering
\begin{tabular}{<colonnes>}
[…]
\end{tabular}
\end{table}
Lorsqu'il y a trop de flottants, la mise en page peut devenir problématique. On pourra avoir recours à l'instruction \clearpage
qui provoque un changement de page et l'affichage de tous les flottants en attente. L'instruction \cleardoublepage
a le même effet, mais le texte qui suit est placé sur une page impaire (« belle page » si l'on est en recto-verso).
L'index des tables s'obtient avec l'instruction \listoftables
. L'extension tocbibind
permet de faire figurer cet index dans la table des matières.