Partie 1 : Les tableaux

Portrait de furet

Réaliser un tableau avec latex peut sembler simple, pourtant il arrive souvent que le résultat obtenu n'est pas du tout ce que l'on souhaitait. Dans cet article vous allez apprendre à utiliser les différents types de tableaux en latex.

Ce tutoriel s'adresse à tous ceux qui utilisent déjà latex, la lecture du tutoriel latex du club*nix est nécessaire si vous voulez profiter pleinement du présent tutoriel. Je vous invite à copier/coller ces exemples pour bien voir ce qu'ils font, note : les exemples ont étés compilés et testés sans problèmes avec Texlive mais si vous utilisez Tetex il ne devrait pas y avoir de soucis. Si jamais vous avez un problème pensez à bien vérifier que vous utilisez les bon packages. Je mets en pièce attachée le fichier entête utilisé pour compiler les exemples.

Tabular

C'est le tableau de base le plus utilisé. Son emploi est très simple : on commence avec \begin{tabular} et \end{tabular}. De plus on doit indiquer le nombre de colonne au tableau ainsi que on alignement ; pour cela on déclare le tableau comme ce qui suit :

\begin{tablular}{lcr}
1ere cellule & 2eme cellule & 3eme cellule\\
une autre ligne : & plip & plop\\
etc & \ldots & \vdots\\ 
\end{tabular}

Bon comme vous l'avez deviné, {lcr} sert à indiquer l'alignement du texte dans la cellule du tableau. Ainsi les cellules dans la première colonne seront justifiée à gauche, celles dans la deuxième colonne seront centrées, et celles dans la dernière colonne justifiées à droite. De plus on utilise le symbole & pour séparer les colonnes du tableau.

Marquer les séparateurs

Voilà vous avez appris à construire un tableau. La question qui se pose c'est comment est-ce que je fais pour pouvoir tracer des lignes qui séparent les différentes colonnes ? C'est très simple : il faut utiliser le pipe (caractère obtenu en tapant Alt gr + 6 sur un clavier azerty : | ) pour ça. Exemple :

\begin{tablular}{|l|c|r|}
\hline
1ere cellule & 2eme cellule & 3eme cellule\\ \hline
une autre ligne : & plip & plop\\ \hline
etc & \ldots & \vdots\\ \hline
\end{tabular}

Ici on note que le pipe, |, se place dans {lcr} ; il n'est pas obligatoire de mettre qu'une seule fois ainsi {|l||c|r} est tout aussi correct. De plus on peut aussi tracer des lignes horizontales avec \hline. Essayez de tester vous même les autres possibilités.

Tracer des lignes horizontales sur une ou plusieurs colonnes

On peut utiliser \cline qui prend 1 argument obligatoire : {colonne départ - colonne arrivée}
Exemple :

\begin{tabular}{|c|c|c|}
\hline
plop & plip & plup\\
\cline{1-1}
plop & plip & plup\\
\cline{2-3}
plop & plip & plup\\
\cline{1-2}
plop & plip & plup\\
\hline
\end{tabular}

Fusionner des cellules avec multicolumn

Le package multicolumn permet de "fusionner" des cellules horizontales. Il prend en argument : le nombre de colonnes, le motif, le texte à afficher dans la cellule. Exemple :

\multicolumn{5}{||c||}{plop}

multicolumn s'utilise à l'intérieur de l'environnement tabular.
Exemple :

\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{\textbf{Club*nix}}\\
\hline
\multicolumn{2}{|c|}{\LaTeX{}} & \multicolumn{2}{c|}{C}\\
\hline
furet & pdflatex & gcc & -Wall\\
\hline
debian & evinces & make & gentoo\\
\hline
\end{tabular}

Note il est également possible de fusionner des cellules verticalement avec la commande \multirow qui s'utilise presque comme \multicolumn

Package array

Le package array permet d'ajouter des nouvelles manières de formater son texte dans les cellules. Il ajoute principalement trois nouveaux mots clés : p, b et m. Ces mots doivent obligatoirement être suivis de la taille de la cellule. p permet de réaliser un alignement vertical du texte vers le haut, b un alignement vertical vers le bas et m de centrer verticalement le texte.

Exemple sans utiliser m, b ou p :

\begin{tabular}{|l|c|}
\hline
gcc &  When you invoke GCC, it normally does preprocessing, compilation, assembly and linking. The "overall options" allow you to stop this process at an intermediate stage.  For example, the -c option says not to run the linker. Then the output consists of object files output by the assembler\ldots{}\\
\hline
\end{tabular}

Vous avez remarqué ? Le texte est beaucoup trop long pour tenir sur une seule cellule et est tronqué. Pour remedier au problème on peut utiliser m{6cm}. Il faut penser à utiliser le package array :
\usepackage{array}
Exemple :

\begin{tabular}{|l|m{6cm}|}
\hline
gcc &  When you invoke GCC, it normally does preprocessing, compilation, assembly and linking. The "overall options" allow you to stop this process at an intermediate stage.  For example, the -c option says not to run the linker. Then the output consists of object files output by the assembler\ldots{}\\
\hline
\end{tabular}

Bien entendu on peut augmenter la taille du paragraphe si l'on veut plus de place mais il faut faire attention à ne pas dépasser la largeur de la page.

tableaux dont la largeur est spécifiée en argument

Dans les exemples qui suivent, la largeur du tableau est donnée en argument de la manière suivante :
\begin{tabular[xy]}{largeur}{colonnes}
où largeur correspond à celle du tableau et [xy] à x ou y comme nous allons le voir. Pour connaitre la largeur de la page, on utilise la commande \linewidth

tabularx

Tabularx fonctionne de manière similaire à tabular, sauf que celui-ci permet l'utilisation d'un nouveau motif : X qui permet d'entre en mode paragraphe (de type p). Sachant que les cellules se partagent l'espace disponible en largeur. Il faut utiliser le package tabularx :
\usepackage{tabularx}
Exemple :

\begin{tabularx}{\linewidth}{|l|X|X|}
\hline
plop & plip plip plip pliplipliplipliplip\ldots & pluplupluplupluplupluppluplup\ldots\\
\hline
\end{tabularx}

tabulary

Tabulary s'utilise de manière similaire à tabularx sauf que nous utilisons les motifs en L, C, R et J à la place de X et permettent d'entrer en mode paragraphe aligné à gauche, centré, aligné à droite et justifié. Il faut utiliser pour ça les packages tabulary et calc :

\usepackage{tabulary}
\usepackage{calc}

Exemple :

\begin{tabulary}{\linewidth}{|L|J|J|}
\hline
plop & plip plip plip pliplipliplipliplip & pluplupluplupluplupluppluplup\\
\hline
\end{tabulary}

Il s'agit en fait de l'exemple précédent on note tout de même une petite différence entre le rendu de tabularx et celui de tabulary.

Fichier attachéTaille
Fichier entete.tex373 octets