Partie 1 : Les tableaux

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 |
---|---|
![]() | 373 octets |