Comment changer le style d’une ligne entière dans un tableau ?#
Chaque cellule d’un tableau est placée dans une boîte, de sorte qu’un changement de style (par exemple un changement de police) ne dure que jusqu’à la fin de la cellule. Un tableau peut contenir de nombreuses cellules, et placer une commande de changement de style de police dans chacune serait extrêmement fastidieux.
L’extension array permet de définir des modificateurs de colonne qui changeront le style de la colonne entière. Cependant, avec un peu d’astuce, on peut faire en sorte que ces modificateurs affectent les lignes plutôt que les colonnes. Notre préambule contiendra ceci :
\usepackage{array}
\newcolumntype{$}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
Maintenant, il nous reste à mettre $
devant le premier spécificateur
de colonne, puis ^
devant les spécificateur des colonnes suivantes.
Enfin, il faudra utiliser la commande \rowstyle
au début
de chaque ligne dont on veut modifier le style :
\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage{array}
\newcolumntype{$}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\begin{document}
\begin{tabular}{|$l|^l|^l|} \hline
\rowstyle{\bfseries}
En-tête & bien & gras \\ \hline
Ligne & assez & neutre \\
Ligne & assez & neutre \\
\rowstyle{\itshape}
Ligne & très & étrange \\
Ligne & assez & neutre \\ \hline
\end{tabular}
\end{document}
Avertissement
L’extension array fonctionne avec plusieurs autres
environnements similaires à tabular
, par exemples ceux fournis
par longtable, mais malheureusement cette astuce ne fonctionnera
pas toujours.