LaTeX & les tableaux en couleur : colorier les cellules d'un tableau

Fleuron

1 - Le package colortbl

Pour colorier un tableau il faut utiliser le package colortbl (\usepackage{colortbl}).

Dans cette partie je n'aborde que la coloration du fond du tableau et des filets, pour la coloration du texte, la définition des couleurs je te renvoie à la fiche «LaTeX et la couleur». Tout ce que tu as vu dans cette fiche s'applique à la coloration des tableaux. colortbl charge automatiquement xcolor.

2 - Colorer une colonne

Tu utilises la commande \columncolor comme ceci, \columncolor[modèle]{taux} ou bien \columncolor{couleur}. Il faut l'associer au descripteur >{...}.

\begin{tabular}{|c|>{\columncolor[RGB]{255,0,186}}c|>{\columncolor{gray!40}\color{white}\bfseries}c|}
\hline
Raoul&Simonne&mariés\\
\hline
Marcel&Raymonde&concubinage\\
\hline
Robert&Alphonse&pacsés\\
\hline
\end{tabular}

3 - Colorer une ligne

Tu utilises la commande \rowcolor comme ceci, \rowcolor[modèle]{taux} ou bien \rowcolor{couleur}. Tu la places au début de la ligne à colorer.

\begin{tabular}{|c|c|c|}
\hline
\rowcolor{blue}Raoul&Simonne&mariés\\
\hline
Marcel&Raymonde&concubinage\\
\hline
\rowcolor{red}Robert&Alphonse&pacsés\\
\hline
\end{tabular}

4 - Colorer une seule cellule

Tu utilises la commande cellcolor comme ceci, \cellcolor[modèle]{taux} ou bien \cellcolor{couleur}. Tu la places au début de la cellule à colorer.

\begin{tabular}{|c|c|c|}
\hline
Raoul&\cellcolor{red}Simonne&mariés\\
\hline
Marcel&Raymonde&concubinage\\
\hline
Robert&Alphonse&\cellcolor{green!25}\color{red}pacsés\\
\hline
\end{tabular}

5 - Colorer une seule cellule, une ligne et une colonne

Maintenant on va tout mélanger.

\begin{tabular}{|>{\columncolor{red}}c|>{\columncolor{gray!40}\color{white}\bfseries}c|c|}
\hline
\rowcolor{blue}Raoul&\cellcolor{red}Simonne&mariés\\
\hline
Marcel&Raymonde&concubinage\\
\hline
\rowcolor{green}Robert&Alphonse&\cellcolor{green!25}\color{red}pacsés\\
\hline
\end{tabular}

Comme tu peux le voir \cellcolor prend le pas sur \rowcolor qui prend le pas sur \columncolor.

6 - Colorer 1 ligne sur 2

Tu dois utiliser l'option table du package xcolor : \usepackage[table]{xcolor}, qui permet d'utiliser la commande \rowcolors.

Attention au s de \rowcolors.

Tu l'utilises comme ceci :

\rowcolors[\hline]{ligneDébut}{couleurPaire}{couleurImpaire}

{ligneDébut} indique le numéro de la ligne ou doit commencer l'alternance de couleur.

L'option [\hline] trace les lignes horizontales.

\rowcolors[\hline]{1}{green}{yellow}
\begin{tabular}{|c|c|}
Raoul&Simonne\\
Robert&Raymonde\\
Jule&Jim\\
Roméo&Juliette
\end{tabular}

Attention : comme tu peux le remarquer dans le code ci-dessus, la commande \rowcolors doit être placée avant et en dehors de l'environnement tabular. Elle s'appliquera donc à tous les tableaux qui suivent. Si tu ne ne veux l'appliquer uniquement au tableau courant encadre l'ensemble de { }.

{\rowcolors[\hline]{1}{green}{yellow}
\begin{tabular}{...}
...
\end{tabular} }

Si tu utilises \rowcolors sans l'option [\hline], n'oublie pas d'ajouter des \hline aux bons endroits.

{\rowcolors{2}{green}{green!25}
\begin{tabular}{|c|c|}
Garçon&Fille\\
Robert&Raymonde\\
Jule&Jim\\
Roméo&Juliette\\
\end{tabular} }

{\rowcolors{2}{green}{green!25}
\begin{tabular}{|c|c|}
\hline % ici pour fermer le tableau en haut
Garçon&Fille\\
\hline % et là pour encadrer l'entête
Robert&Raymonde\\
Jule&Jim\\
Roméo&Juliette\\
\hline % ici pour fermer le tableau en bas
\end{tabular} }

7 - Colorer les filets

Pour colorer tous les filets d'un tableau tu utilises \arrayrulecolor{couleur}.

Cette commande se comporte comme \color.

{\arrayrulecolor{red}
\begin{tabular}{|c|c|}
\hline
Garçon&Fille\\
\hline
Raoul&Simonne\\
\hline
Robert&Raymonde\\
\hline
Marcel&Ginette\\
\hline
\end{tabular}}

Tu peux l'utiliser conjointement avec \arrayrulewidth qui augmente la taille du filet.

{\setlength\arrayrulewidth{2pt}
\arrayrulecolor{red}
\begin{tabular}{|c|c|}
\hline
Garçon&Fille\\
\hline
Raoul&Simonne\\
\hline
Robert&Raymonde\\
\hline
Marcel&Ginette\\
\hline
\end{tabular}}

Tu peux placer \arrayrulecolor{couleur} à l'intérieur de l'environnement tabular.

\begin{tabular}{|c|c|}
\arrayrulecolor{red}
\hline
Garçon&Fille\\
\hline
Raoul&Simonne\\
\hline
Robert&Raymonde\\
\hline
Marcel&Ginette\\
\hline
\end{tabular}

Tu peux obtenir des effets intéressants.

\begin{tabular}{|c|c|}
\hline
Garçon&Fille\\
\hline
Raoul&Simonne\\
\hline
\arrayrulecolor{red}
Robert&Raymonde\\
\hline
Marcel&Ginette\\
\hline
\end{tabular}

Attention : on ne peux pas limiter l'action de \arrayrulecolor{couleur} même en l'encadrant de { }. La seule solution pour retrouver un comportement normal des tableaux suivants est de mettre \arrayrulecolor{black} à la fin du tableau coloré.

8 - Colorer l'espace entre les filets

Tu utilises \doublerulesepcolor, à la quelle tu peux joindre \doublerulesep qui augmente l'espace entre les filets.

{\setlength\doublerulesep{3pt}
\doublerulesepcolor{red}
\begin{tabular}{|c||c|}
\hline
Garçon&Fille\\
\hline
Raoul&Simonne\\
\hline
\arrayrulecolor{red}
Robert&Raymonde\\
\hline
Marcel&Ginette\\
\hline
\end{tabular}

Attention : comme pour \arrayrulecolor{couleur} on ne peux pas limiter l'action de \doublerulesepcolor{couleur} même en l'encadrant de { }. La seule solution pour retrouver un comportement normal des tableaux suivants est de mettre \doublerulesepcolor{white} à la fin du tableau coloré.

9 - Colorer les filets verticaux

Pour colorer les filets verticaux il faut remplacer les | par !{\color{couleur}\vline}. Pour régler la largeur du filet on utilise !{\color{couleur}\vline width largeur}.

\begin{tabular}{!{\color{red}\vline}c!{\color{blue}\vline}c!{\color{pink}\vline width 10pt}c|}
\hline
Garçon&Fille&Statut\\
\hline
Raoul&Simonne&mariés\\
\hline
Robert&Raymonde&concubinage\\
\hline
Marcel&Ginette&\\
\hline
\end{tabular}

Tu peux créer une commande pour définir un nouveau type de trait vertical. Voici comment procéder pour créer un nouveau filet vertical de couleur rouge et de 2pt de large que l'on va appeler R.

\newcolumntype{R}{!{\color{red}\vline width 2pt}}

Tu l'utilise comme ceci :

\newcolumntype{R}{!{\color{red}\vline width 2pt}}
\begin{tabular}{|cRc|}
\hline
Garçon&Fille\\
\hline
Raoul&Simonne\\
\hline
Robert&Raymonde\\
\hline
Marcel&Ginette\\
\hline
\end{tabular}

10 - Colorer les filets horizontaux

Pour colorer un seul filet horizontal, il faut passer par la création d'une commande. On va donc créer un nouveau type de ligne que l'on va appeler \rhline, r pour rouge (tu peux donner le nom que tu veux) :

\newcommand{\rhline}{\arrayrulecolor{red}\hline\arrayrulecolor{black}}

Le premier \arrayrulecolor est pour changer la couleur et le deuxième pour retrouver la couleur par défaut. Si tu l'omet toutes les lignes suivantes seront colorées ce qui n'est pas le but recherché. Tu utilises ta nouvelle commande comme \hline :

\newcommand{\rhline}{\arrayrulecolor{red}\hline\arrayrulecolor{black}}
\begin{tabular}{|c|c|}
\hline
Garçon&Fille\\
\rhline
Raoul&Simonne\\
\hline
Robert&Raymonde\\
\hline
Marcel&Ginette\\
\hline
\end{tabular}

Tu peux colorer un filet horizontal partiel (\cline), par le même principe. La différence est que\cline prend un argument :

\newcommand{\rcline}[1]{\arrayrulecolor{red}\cline{#1}\arrayrulecolor{black}}

Tu utilises ta nouvelle commande \rcline comme un \cline par exemple \rcline{1-1}

\newcommand{\rcline}[1]{\arrayrulecolor{red}\cline{#1}\arrayrulecolor{black}}
\begin{tabular}{|c|c|}
\hline
Garçon&Fille\\
\rcline{1-1}
Raoul&Simonne\\
\hline
Robert&Raymonde\\
\hline
Marcel&Ginette\\
\hline
\end{tabular}

11 - Conclusion

On a fait le tour de la coloration des tableaux. Tu peux mélanger tout ce que l'on a vu dans cette fiche et dans les précédentes pour faire des tableaux merveilleux et très flashy.