LaTeX modifier les filets d'un tableau : des lignes plus grasses, en pointillé, en tireté,. . .

Fleuron

1 - Une ligne horizontale plus épaisse

Tu as vu dans les fiches précédentes sur les tableaux que la gestion de l'épaisseur des filets ce fait avec arrayrulewidth du package array, mais cela concerne toutes les lignes du tableaux. Pour ne modifier qu'une ligne le truc c'est de créer des doubles lignes avec un intervalle nul. L'intervalle nul s'obtient avec la commande \setlength{\doublerulesep}{0pt} si tu utilise le package array et \setlength{\doublerulesep}{\arrayrulewidth} si tu ne l'utilises pas. Il te suffit ensuite de mettre autant de \hline que nécessaire pour obtenir l'épaisseur voulue.

{\setlength{\doublerulesep}{0pt}
\begin{tabular}{|c|c|}
\hline
Prénom&Nom\\
\hline\hline\hline\hline
Frodon&Sacquet\\
\hline
Sam&Gamegie\\
\hline
Peregrin&Touque\\
\hline
Meriadoc&Brandebouc\\
\hline
\end{tabular}
}

Le problème de la méthode précédente est que tu ne peux pas utiliser de vrais doubles lignes dans le tableau. Il existe une autre solution peut être plus pratique qui consiste à créer une commande. Pour cela il te faut rajouter dans l'entête de ton document les 2 instructions suivantes :

\newlength\epaisLigne
\newcommand\Gline{\noalign{\global\epaisLigne\arrayrulewidth\global
\arrayrulewidth 1.5pt} \hline \noalign{\global\arrayrulewidth\epaisLigne}}

La première commande crée une nouvelle longueur appelée \epaisLigne utilisée dans la 2ecommande (tu peux choisir un autre nom) ; la deuxième crée une nouvelle commande appelée \Gline (pour Grosse ligne, tu peux choisir un autre nom). Cet ensemble de commande est un peu compliqué, mais le but est de créer une nouvelle ligne plus épaisse et de restaurer l'ancienne valeur pour les autres lignes. Tu utilises cette nouvelle commande \Gline dans ton tableau en remplacement de \hline pour obtenir une ligne de 1.5 pt d'épaisseur. Tu peux évidemment changer le 1.5 pt par la valeur de ton choix (1 mm, 0.5 cm, . . .). Tu peux te créer plusieurs commandes en fonction de tes besoins.

\newlength\epaisLigne
\newcommand\Gline{\noalign{\global\epaisLigne\arrayrulewidth\global \arrayrulewidth 0.25cm}
\hline\noalign{\global\arrayrulewidth\epaisLigne}}
\newcommand\Mline{\noalign{\global\epaisLigne\arrayrulewidth\global
\arrayrulewidth 1.5pt}
\hline\noalign{\global\arrayrulewidth\epaisLigne}}
\begin{tabular}{|c|c|}
\hline
Prénom&Nom\\
\Gline
Frodon&Sacquet\\
\hline
Sam&Gamegie\\
\Mline
Peregrin&Touque\\
\hline
Meriadoc&Brandebouc\\
\hline
\end{tabular}

2 - Une ligne verticale plus épaisse

Le plus simple, créer une nouvelle commande, que l'on va appeler I, selon le même principe que précédemment mais cette fois avec l'instruction suivante :

\newcolumntype{I}{!{\vrule width 1.5pt}}

Pour des questions de lisibilité je te conseille de ne prendre un nom constitué d'un seul caractère plutôt allongé en évitant r l c. Tu remplaces dans le tableau les | par ta nouvelle commande I.

\newcolumntype{I}{!{\vrule width 1.5pt}}
\begin{tabular}{||lIm{2.5cm}||}
\hline
-1 & gel\\
\hline
90 & bout\\
\hline\hline
22 & est bonne\\
\hline
\end{tabular}

Si tu ne veux pas créer de commande, tu peux intégrer la commande !{\vrule width 1.5pt} dans le tableau.

\begin{tabular}{||l!{\vrule width 1.5pt}m{2.5cm}||}
\hline
-1 & gel\\
\hline
90 & bout\\
\hline \hline
22 & est bonne\\
\hline
\end{tabular}

Donne le même résultat que précédemment.

3 - Tableau avec des lignes en pointillés

Tu dois utiliser le package arydshln.

Attention si tu l'utilise avec array tu dois charger dans l'ordre array puis arydshln.

Il définit 2 nouvelles lignes et un séparateur. Le : remplace le | et \hdashline et \cdashline remplacent respectivement \hline et \cline et se comportent de la même manière.

\begin{tabular}{|l::c:r|}\hline
A&B&C\\
\hdashline
AAA&BBB&CCC\\
\cdashline{1-2}
\multicolumn{2}{|l:}{AB}&C\\
\hdashline\hdashline
\end{tabular}

Un nouveau descripteur le ;{longueurTrait/longueurBlanc} (attention au ;) permet de régler les pointillés des lignes verticales et des options [longueurTrait/longueurBlanc] ajoutées à \hdashline et \cdashline de régler les horizontales.

\begin{tabular}{|l::c;{2pt/2pt}r|}\hline
A&B&C\\
\hdashline[1pt/1pt]
AAA&BBB&CCC\\
\cdashline{1-2}[.4pt/1pt]
\multicolumn{2}{|l;{2pt/2pt}}{AB}&C\\
\hdashline\hdashline
\end{tabular}

4 - Les doubles lignes

Si tu as déjà essayé les doubles lignes tu as pu remarquer des problèmes lors de croisement de certaines combinaisons de double et simple ligne; comme dans le tableau suivant :

\begin{tabular}{||l||m{2.5cm}||}
\hline\hline
-1 & gel\\
\hline
90 & bout\\
\hline
22 & est bonne\\
\hline
\end{tabular}

Le package hhline avec la commande du même nom \hhline{descripteur}, permet de remédier à ces problèmes.

Attention ce package entre en conflit avec le arydshln, tu ne peux pas les charger ensemble dans un même document.

Les descripteurs permettent de décrire la ligne avec les valeurs suivantes :

Le tableau ci-dessus devient :

\begin{tabular}{||l||m{2.5cm}|}
\hhline{#=||=|}
-1 & gel\\
\hhline{-||-}
90 & bout\\
\hhline{=::=}
22 & est bonne\\ \hhline{#=||=|}
\end{tabular}

Conclusion

Voilà un petit tour d'horizon des possibilités de modification des lignes d'un tableau.