Modifier l'espacement entre les filets horizontaux et le texte
Les descripteurs <{déclaration} et >{déclaration}
Créer des descripteurs de colonnes
Le package array (\usepackage{array}) est fortement recommandé car non seulement il améliore l'aspect des tableaux mais en plus, il ajoute des fonctionnalités très utiles comme tu vas le voir.
La première amélioration concerne les | dont array modifie le comportement.
Un tableau réalisé avec tabular sans le package array}
Le même avec le package array
Ça se passe de commentaire !
Cette commande permet de fixer la largeur de la colonne comme p{valeurUnité} de l'environnement tabular mais alors que p{valeurUnité} aligne toutes les cellules sur le haut de la rangée, m{valeurUnité} centre verticalement chaque cellule par rapport au reste de la rangée.
\begin{tabular}{|p{2cm}|l||p{1cm}|} \hline Première ligne longue, très longue, trop longue& colonne 2& un peu longue\\ \hline ligne2&rien&rien\\ \hline \end{tabular}
\begin{tabular}{|m{2cm}|l||m{1cm}|} \hline Première ligne longue, très longue, trop longue& colonne 2& un peu longue\\ \hline ligne2&rien&rien\\ \hline \end{tabular}
Même action que les commandes \p{valeurUnité} et \m{valeurUnité} mais cette fois ci la rangée est alignée sur le bas de la ligne.
\begin{tabular}{|b{2cm}|l||b{1cm}|} \hline Première ligne longue, très longue, trop longue& colonne 2& un peu longue\\ \hline ligne2&rien&rien\\ \hline \end{tabular}
Attention si tu peux mettre plusieurs b{...} dans un même tableau, comme l'exemple ci-dessus, tu ne peux mélanger des p{...} des b{...} et des m{...}. Tu ne peux avoir, par exemple, à la fois une rangée centrée et alignée en haut !
Même action que la commande @{texte}, c'est à dire remplacer | par la valeur de «texte» mais sans la suppression des espaces.
\begin{tabular}{|l@{$\rightarrow$}c@{\ding{37}}l|} \hline Robert Bidochon&RB&03.03.03.03.01\\\hline Ginette Lacaille&GL&02.02.02.02.01\\\hline \end{tabular}
\begin{tabular}{|l!{$\rightarrow$}c!{\ding{37}}l|} \hline Robert Bidochon&RB&03.03.03.03.01\\\hline Ginette Lacaille&GL&02.02.02.02.01\\\hline \end{tabular}
Le package array ajoute une nouvelle distance \extrarowheight qui permet d'augmenter l'espacement entre les lignes horizontales et le texte. La valeur par defaut de \extrarowheight est 0. Tu modifies sa valeur à l'aide de \setlength. Voici un tableau avec la valeur par défaut :
\begin{tabular}{|c|c|c|} \hline case 1&case 2&case 3\\ \hline case 4&case 5&case 6\\ \hline \end{tabular}
Le même tableau avec une valeur de \extrarowheight de 5 pt
{\setlength{\extrarowheight}{5pt} \begin{tabular}{|c|c|c|} \hline case 1&case 2&case 3\\ \hline case 4&case 5&case 6\\ \hline \end{tabular} }
Ces commandes permettent d'insérer un même «texte» dans chaque cellule d'une colonne. On peut insérer un texte avant >{...} ou après le texte des cellules <{...}.
Le tableau original
\begin{tabular}{|c|l|} \hline -1 & gel\\ \hline 90 & bout\\ \hline 22 & est bonne\\ \hline \end{tabular}
Transformé par les descripteurs :
\begin{tabular}{|c<{\degres C}|>{l'eau}l<{.}|} \hline -1 & gel\\ \hline 90 & bout\\ \hline 22 & est bonne\\ \hline \end{tabular}
Les descripteurs acceptent également les commandes LaTeX ce qui est particulièrement intéressant par exemple pour mettre toute une colonne en gras, en italique ou même en couleur. Dans ce cas on utilise que le descripteur >{...} car une commande LaTeX n'affecte que ce qui est placé après elle.
Le tableau original :
\begin{tabular}{|c|l|} \hline -1 & gel\\ \hline 90 & bout\\ \hline 22 & est bonne\\ \hline \end{tabular}
Le tableau modifié :
\begin{tabular}{|>{\color{blue}\bfseries}c|>{\itshape}l|} \hline -1 & gel\\ \hline 90 & bout\\ \hline 22 & est bonne\\ \hline \end{tabular}
Un autre exemple de l'utilisation des descripteurs, obtenir une colonne centrée horizontalement et verticalement comme la colonne 2 de l'exemple ci-dessous :
\begin{tabular}{|m{2cm}|>{\centering}m{2cm}||m{1cm}|} \hline Première ligne longue, très longue, trop longue& colonne 2& un peu longue\\ \hline ligne2&rien&rien\\ \hline \end{tabular}
Le descripteur >{...} accepte pratiquement toutes les commandes \LaTeX, donc les possibilités de mise en forme des tableaux est grande.
N'étant pas mathématicien, je n'ai que très rarement besoin d'utiliser le mode mathématique. Mais il m'arrive parfois d'en avoir besoin comme dans le cas du symbole ± qui est un symbole mathématique. Le passage temporaire au mode math se fait en encadrant la partie math de $ par exemple pour ± $\pm$. Si tu veux faire un tableau avec 1 colonne en mode mathématique, voici comme faire :
\begin{tabular}{|l|>{$}c<{$}|} \hline une chose&256\pm14\\\hline autre chose&15896\pm69\\\hline \end{tabular}
Tu peux définir toi même tes propres descripteurs, pratique si tu dois les utiliser dans plusieurs tableaux, ça évite d'avoir à retaper toujours les mêmes commandes et surtout, si besoin est, il te suffit de modifier la commande du descripteur pour que tous les tableaux l'utilisant soient modifiés. C'est le même principe que pour créer une nouvelle commandes (voir la fiche « LaTeXcréer ses commandes»). On défini cette nouvelle colonne par :
\newcolumntype{nom}[nb arguments]{définition}
Par exemple on va créer 2 nouveaux descripteurs «B» et «E» reprenant les exemples ci-dessus.
\newcolumntype{E}{>{\itshape l'eau}m{4cm}<{.}} \newcolumntype{B}{>{\color{blue}}l<{\degres C}} \begin{tabular}{|B|E|}% \hline -1 & gel\\ \hline 90 & bout\\ \hline 22 & est bonne\\ \hline \end{tabular}
Avec le package array on a augmenté la possibilité de créer des tableaux complexes, mais ce n'est pas fini LaTeX à encore plus d'un tour dans son sac pour améliorer l'aspect de tes tableaux.
← Première partie : les tableaux simples avec l'environnement tabular | Les tableaux | Troisième partie : les tableaux en couleur → |