AccueilFontesretourStructure

Les tableaux en TEX

Introduction

Caractères

Maths

Fontes

Tables

Deux environnements similaires

L'environnement array

Exemple 1 : une matrice

Exemple 2 : un système

L'environnement tabular

Alignement vertical

Lignes verticales

Lignes horizontales

Texte sur plusieurs lignes

Texte sur plusieurs colonnes

Exemple récapitulatif

Structure

Paragraphes

Espaces

Deux environnements similaires

LATEX propose deux environnements pour créer tables, tableaux, ... Il s'agit de array et tabular. Ils permettent de faire pratiquement la même chose. Alors, quelle est la différence ?

  • array s'utilise en mode mathématique ;
  • tabular s'utilise en mode texte.

Sinon, les deux obéissent à la syntaxe générale de mise en place des environnements, déjà décrite ici : l'environnement commence avec un \begin{...} et finit avec un \end{...}.

Comme on a rarement besoin de tableaux complexes en mode mathématique, nous commençons par quelques exemples simples avec array, avant de voir plus élaboré avec tabular.

haut de page


L'environnement array

Premier exemple : une matrice

Supposons qu'on veuille coder la matrice [1] suivante :

    
a
b
c
d



Le code à employer serait le suivant :

$\left( 
\begin{array}{cc}
a & b \\ 
c & d
\end{array}
\right) $

Explications : après le $ initial qui introduit le mode mathématique, \left( crée une parenthèse gauche extensible. Vient ensuite le array proprement dit. 

L'en-tête \begin{array}{cc} déclare un tableau à deux colonnes centrées. Pour trois colonnes alignées à gauche, ce serait bien sûr \begin{array}{lll}, et \begin{array}{lcr} produirait trois colonnes : la première alignée à gauche, la deuxième centrée, et la troisième alignée à droite.

Puis a & b \\ fait la première ligne : les "cellules" sont séparées par des "&", et la ligne se finit par une marque de passage à la ligne : \\.

On procède de même pour chaque ligne suivante [2].

Enfin, les deux dernières lignes de code ferment successivement : l'environnement array, la parenthèse et le mode mathématique.

haut de page

Deuxième exemple : un système

Essayons de coder le système suivant :

    




x+y+z=1
2x+y-z=0
x-3y+2z=5

Cette fois in écrirait :

$\left\{ 
\begin{array}{r}
x+y+z=1 \\ 
2x+y-z=0 \\ 
x-3y+2z=5
\end{array}
\right. $

Explications : qu'est-ce qui change ? On ouvre une accolade (\left{) au lieu d'une parenthèse. On déclare ensuite un tableau avec une seule colonne, alignée à droite. On place nos équations sur chaque ligne. À noter simplement le "délimiteur vide" \right. : il faut quelque chose qui réponde au \left{, mais qui ne produise aucune sortie.

haut de page


L'environnement tabular

Profitons de cet environnement pour illustrer d'autre possibilités des tableaux en LATEX.

Alignement vertical de l'ensemble du tableau

Par défaut le tableau "en ligne" est centré en hauteur (par rapport à la ligne qui le contient). Pour l'aligner sur la ligne du haut (resp. du bas), il suffit de faire suivre le \begin{tabular} du paramètre optionnel [t] (resp. [b]). Par exemple,

\begin{tabular}[t]{ccc}

pour un tableau de 3 colonnes (centrées), aligné en hauteur sur la ligne du haut.

haut de page

Lignes verticales

Dans la déclaration du tableau, on utilise le caractère "barre verticale". Par exemple,

\begin{tabular}{|c||c|c|c|}

déclare un tableau de 4 colonnes (centrées) encadrées par des lignes (avec 2 lignes entre les première et deuxième colonnes).

Séparation des colonnes par du texte

Au lieu de séparer deux colonnes par une ligne verticale, on peut utiliser à cet effet un élément de texte. Il suffit de remplacer la barre verticale précédente par

@{texte}

haut de page

Lignes horizontales

Pour produire une ligne horizontale s'étendant sur la largeur du tableau :

\hline

Deux \hline consécutifs sont possibles pour une double séparation, mais cela crée une petite interruption dans les lignes verticales.

Mais pour une ligne ne s'étendant que de la colonne n° c1 à la colonne c2, on utilisera :

\cline{c1-c2}

haut de page

Plusieurs lignes de texte dans une cellule

Pour qu'une colonne adopte une largeur fixée (plutôt qu'adaptée à son contenu), remplacer les options l/c/r d'alignement de colonne par

\p{longueur}

Le texte dans cette colonne passera à la ligne si nécessaire. longueur peut être exprimée en toute unité reconnue par LATEX.

haut de page

Texte s'étendant sur plusieurs cellules

Pour qu'un texte s'étende sur plusieurs colonnes, on utilisera la syntaxe

\multicolumn{nbcol}{alignement}{texte}

nbcol est le nombre de colonnes, alignement vaut l ou c ou r pour gauche, centré et droite resp., et texte est le contenu de la cellule multicolonne.

Notons que nbcol peut valoir 1, ce qui permet éventuellement d'outrepasser l'alignement de colonne déclaré dans l'en-tête du tableau.

haut de page

Exemple récapitulatif

Soit à coder le tableau suivant :

On pourrait par exemple écrire (parmi bien d'autres possibilités) :

\begin{tabular}{|c||c|c|}
\hline
\multicolumn{3}{|c|}{\bf{March\'e de Fouzy-sur-Lagueul}} \\
\hline\hline
\bf{Article} & \bf{Provenance} & \bf{Quantit\'e} \\ 
\hline
\multicolumn{1}{|l||}{Pruneaux} & \multicolumn{1}{c|}{Agen} & \multicolumn{1}{r|}{10 kg} \\
\hline
\multicolumn{1}{|l||}{Figues} & \multicolumn{2}{c|}{\it{en cours d'approvisionnement}} \\
\hline
\multicolumn{1}{|l||}{Kiwis} & \multicolumn{1}{c|}{N$^{\text{lle}}$ Z\'{e}lande} & \multicolumn{1}{r|}{3 kg} \\ \hline
\end{tabular}

On notera simplement, dans les trois dernières lignes, l'usage de \multicolumn{1}... pour modifier l'alignement par défaut (centré) déclaré dans l'en-tête du tableau. Dans ce cas, il faut faire attention à bien mettre en place les traits verticaux, pour les cellules dont l'alignement a été modifié.

haut de page


Notes

[1]  ... qui aurait bien meilleure allure en LATEX que sur cette malheureuse page HTML !

[2]  Le nombre de lignes n'est pas déclaré à l'avance, contrairement à celui des colonnes.

haut de page