Tableaux

Tableaux Filets

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


Sommaire

1 - Une ligne horizontale plus épaisse

2 - Une ligne verticale plus épaisse

3 - Tableau avec des lignes en pointillés

4 - Les doubles lignes


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\Ghline{\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 \hline
 22 & est bonne\\ \hline% \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 :

  • = : Une double ligne horizontale de la largeur de la colonne
  • - : Une simple ligne horizontale de la largeur de la colonne
  • ~ : Une colonne sans ligne horizontale
  • | : Une ligne verticale traverse une ligne horizontale
  • : : Une ligne verticale intérompue par une ligne horizontale
  • # : Le symbole représente exactement ce qui ce passe
  • t : Ligne du haut d'une double ligne horizontale
  • b : Ligne du bas d'une double ligne horizontale

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.