Colorier une cellule de tableau

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Colorier une cellule de tableau

Message par pianiste06 »

Bonjour,

Je cherche à colorier en gris certaines cellules d'un tableau. J'ai téléchargé le package colortab
et j'ai mis sur les cellules en question la fonction \cellcolor{gray} . Le problème... c'est que la cellule
ne se colorie pas. J'ai essayé d'autres couleurs, en pensant que le gris était tellement clair, qu'on ne voyait
pas la différence avec le blanc... mais rien n'y fait.
Tout reste blanc.

Merci par avance pour vos précieux conseils.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 809
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Colorier une cellule de tableau

Message par un bon petit »

Merci de poster un ECM avec le \listfiles si possible.

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Colorier une cellule de tableau

Message par pianiste06 »

Je pense connaître l'origine du problème. C'est que le package xcolor n'est pas compatible avec le package tcolorbox. Alors je me demande s'il est possible de griser une case avec tcolorbox ? J'entoure tous les théorèmes avec cet environnement ...

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 809
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Colorier une cellule de tableau

Message par un bon petit »

pianiste06 a écrit :
mardi 28 juillet 2020, 15:37
Je pense connaître l'origine du problème.
Vous pensez ou vous êtes sûr ? Avez-vous construit un ECM (décidément :roll: ) qui vous permet de mettre en évidence une incompatibilité ?
pianiste06 a écrit :
mardi 28 juillet 2020, 15:37
C'est que le package xcolor n'est pas compatible avec le package tcolorbox.
Ça m'étonnerait.
pianiste06 a écrit :
mardi 28 juillet 2020, 15:37
Alors je me demande s'il est possible de griser une case avec tcolorbox ? J'entoure tous les théorèmes avec cet environnement ...
Moi, je ne souhaite pas discuter comme ça dans le vide, passer d'un sujet à l'autre sans jamais écrire une ligne de code : je commence à vous connaitre et on va y passer un temps fou sans avancer.

Pour résumer :
  • écrivez un ECM
  • décrivez le ou les erreurs
  • exprimez clairement ce que vous souhaitez.
Merci.

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Colorier une cellule de tableau

Message par pianiste06 »

Ok. Désolé... comme le tableau était lourd, je ne voulais pas mettre le code.

Voici le programme court qui tourne et j'ai mis en commentaire, la fonction que j'aimerai utiliser à la place du package xcolor, car ce dernier package entraine un clach avec l'autre package.

Code : Tout sélectionner

\documentclass{article}
%\usepackage{tcolorbox}
\usepackage[table]{xcolor}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{amsmath, amssymb}
\colorlet{lightgrey}{lightgray}
%\usetikzlibrary{matrix}
\usepackage{mathtools}

\begin{document}

{\tiny
\begin{center}
\begin{tabularx}{1\textwidth}{|*{10}{c|}}\hline
n/k&0& 1&2&3&4&$\ldots$&k&k+1&$\ldots$\\ \hline
0&${\scriptsize\mathrm{\begin{pmatrix}0\\0\end{pmatrix}}}=1$&&&&\cellcolor{lightgray}&&&&\\ \hline
1&${\scriptsize\mathrm{\begin{pmatrix}1\\0\end{pmatrix}}}=1$&${\scriptsize\mathrm{\begin{pmatrix}1\\1\end{pmatrix}}}=1$&&&&&&&\\ \hline
2&${\scriptsize\mathrm{\begin{pmatrix}2\\0\end{pmatrix}}}=1$&${\scriptsize\mathrm{\begin{pmatrix}2\\1\end{pmatrix}}}=2$&${\scriptsize\mathrm{\begin{pmatrix}2\\2\end{pmatrix}}}=1$&&&&&&\\ \hline
3&${\scriptsize\mathrm{\begin{pmatrix}3\\0\end{pmatrix}}}=1$&${\scriptsize\mathrm{\begin{pmatrix}3\\1\end{pmatrix}}}=3$&${\scriptsize\mathrm{\begin{pmatrix}3\\2\end{pmatrix}}}=3$&${\scriptsize\mathrm{\begin{pmatrix}3\\3\end{pmatrix}}}=1$&&&&&\\ \hline
4&${\scriptsize\mathrm{\begin{pmatrix}4\\0\end{pmatrix}}}=1$&${\scriptsize\mathrm{\begin{pmatrix}4\\1\end{pmatrix}}}=4$&${\scriptsize\mathrm{\begin{pmatrix}4\\2\end{pmatrix}}}=6$&${\scriptsize\mathrm{\begin{pmatrix}4\\3\end{pmatrix}}}=4$&${\scriptsize\mathrm{\begin{pmatrix}4\\4\end{pmatrix}}}=1$&&&&\\ \hline
$\vdots$&1&$\ldots$&&&&&&&\\ \hline
n&${\scriptsize\mathrm{\begin{pmatrix}n\\0\end{pmatrix}}}=1$&$\ldots$&&&&&${\scriptsize\mathrm{\begin{pmatrix}n\\k\end{pmatrix}}}$&${\scriptsize\mathrm{\begin{pmatrix}n\\k+1\end{pmatrix}}}$&$\ldots$\\ \hline
n+1&${\scriptsize\mathrm{\begin{pmatrix}n+1\\0\end{pmatrix}}}=1$&$\ldots$&&&&&&${\scriptsize\mathrm{\begin{pmatrix}n+1\\k+1\end{pmatrix}}}$&$\ldots$\\ \hline
\end{tabularx}
\end{center}}

\end{document}
Bonne journée à vous.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 809
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Colorier une cellule de tableau

Message par un bon petit »

Pour éviter l'erreur ultra classique de l'« option clash », inversez l'ordre d'appel des packages :

Code : Tout sélectionner

\usepackage[table]{xcolor}
\usepackage{tcolorbox}
Vous voyez bien qu'avec un ECM, tout va bien plus vite que des impressions...

Ah, vous devriez vous renseignez sur l'erreur "option clash" : pourquoi elle apparait et quels sont les moyens de l'éviter. C'est assez utile dans la culture latexienne...

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Colorier une cellule de tableau

Message par pianiste06 »

Ok. Merci.

Je ne savais pas que l'ordre intervenait pour les packages.
J'ai passé un temps fou pour trouver le bug.

Merci encore et j'ai bien compris maintenant qu'un code vaut mieux qu'un long discours...

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 809
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Colorier une cellule de tableau

Message par un bon petit »

pianiste06 a écrit :
mardi 28 juillet 2020, 16:40
J'ai passé un temps fou pour trouver le bug.
Si seulement vous factorisiez un peu vos codes, ça serait plus clair !

Code : Tout sélectionner

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{tcolorbox,amsmath, amssymb}
\colorlet{lightgrey}{lightgray}
\newcommand*\CNP[2]{\scriptsize\mathrm{\begin{pmatrix}#1\\#2\end{pmatrix}}}
\begin{document}
	\begin{center}
		$\begin{array}{|*{10}{c|}}\hline
			n/k&0& 1&2&3&4&\ldots&k&k+1&\ldots\\\hline
			0&\CNP00=1&&&&\cellcolor{lightgray}&&&&\\\hline
			1&\CNP10=1&\CNP11=1&&&&&&&\\\hline
			2&\CNP20=1&\CNP21=2&\CNP22=1&&&&&&\\\hline
			3&\CNP30=1&\CNP31=3&\CNP32=3&\CNP33=1&&&&&\\\hline
			4&\CNP40=1&\CNP41=4&\CNP42=6&\CNP43=4&\CNP44=1&&&&\\\hline
			\vdots&1&\ldots&&&&&&&\\\hline
			n&\CNP n0=1&\ldots&&&&&\CNP nk&\CNP n{k+1}&\ldots\\\hline
			n+1&\CNP {n+1}0=1&\ldots&&&&&&\CNP{n+1}{k+1}&\ldots\\\hline
		\end{array}$%
	\end{center}
\end{document}

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Colorier une cellule de tableau

Message par pianiste06 »

Génial le coup des coeff binomiaux !
Je ne savais pas qu'on pouvait faire ca.

Je mets tout ca sur mon cahier d'astuces.

Merci encore !

evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1452
Inscription : vendredi 19 décembre 2008, 19:13
Localisation : Bordeaux

Re: Colorier une cellule de tableau

Message par evariste_G »

pianiste06 a écrit :
mardi 28 juillet 2020, 17:17
Génial le coup des coeff binomiaux !
Je ne savais pas qu'on pouvait faire ca.

Je mets tout ca sur mon cahier d'astuces.

Merci encore !
Oui, enfin bon... Il existe déjà une commande pour le coefficient binomial:

Code : Tout sélectionner

$\binom{15}{5}$
contenue dans le package amsmath :roll:
Mathématiques, LaTeX et Python : http://www.mathweb.fr

jmd
Utilisateur confirmé
Utilisateur confirmé
Messages : 32
Inscription : samedi 06 février 2016, 11:08

Re: Colorier une cellule de tableau

Message par jmd »

Bonjour,

J'utilise souvent ceci :

Code : Tout sélectionner

\usepackage{colortbl}
\begin{tabular}{...}
...& \cellcolor{nom_couleur} blabla &...
et ça marche très bien !

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Colorier une cellule de tableau

Message par pianiste06 »

@un bon petit

Bonjour,

Si j'avais voulu définir les coordonnées d'un vecteur en 3D, j'aurai pu faire :

Code : Tout sélectionner

\newcommand*\VECT[3]{\scriptsize\mathrm{\begin{pmatrix}#1\\#2\\#3\end{pmatrix}}}
et l'appeler en faisant \VECT345 pour avoir les coordonnées colonnes d'un vecteur de coordonnées 3, 4, 5 ?
Juste un truc, à quoi sert l'étoile dans \newcommand* ?

Bonne journée à vous.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 809
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Colorier une cellule de tableau

Message par un bon petit »

pianiste06 a écrit :
mercredi 29 juillet 2020, 08:58
[SNIP]et l'appeler en faisant \VECT345 pour avoir les coordonnées colonnes d'un vecteur de coordonnées 3, 4, 5 ?
Vous avez essayé ? Le meilleur moyen de savoir si une macro que l'on construit fonctionne est de la tester soi même. C'est d'ailleurs ce que je passe mon temps à faire.
pianiste06 a écrit :
mercredi 29 juillet 2020, 08:58
Juste un truc, à quoi sert l'étoile dans \newcommand* ?
Cela spécifie que la macro définie sera « courte » alors qu'elle est « longue » par défaut sans l'étoile. Encore un truc pas très cohérent de LaTeX, car c'est l'inverse de TeX où par défaut les macros définies par \def sont courtes (et c'est très bien ainsi) et où l'on doit utiliser \long\def pour demander à ce qu'elles soient longues.

Pour faire court (justement :lol: ), une macro est courte lorsqu'elle n'admet pas la primitive \par dans ses arguments. Elle est longue dans le cas contraire.

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Colorier une cellule de tableau

Message par pianiste06 »

Salut "un bon petit",

Je viens de tester (j'avais oublié de mettre \\ pour changer de ligne) et ca marche à merveille !!!!

Pour être honnête avec vous, je n'ai pas saisi la différence entre une macro courte et longue ?
Pour moi, la commande \par signifie qu'on veut changer de paragraphe et je ne vois pas le rapport avec les macro...

Pourriez vous me donner un exemple d'une macro longue ? (pas besoin de code ECM... :):):) )

Bonne journée à vous,

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 809
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Colorier une cellule de tableau

Message par un bon petit »

pianiste06 a écrit :
mercredi 29 juillet 2020, 11:17
Pourriez vous me donner un exemple d'une macro longue ? (pas besoin de code ECM... :):):) )
Une macro longue :

Code : Tout sélectionner

\newcommand\foo[1]{Mon texte : #1}
La même macro courte :

Code : Tout sélectionner

\newcommand*\foo[1]{Mon texte : #1}
Avec la première définition, on peut mettre \par dans l'argument de la macro. C'est refusé et produira une erreur de compilation avec la seconde définition.

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Colorier une cellule de tableau

Message par pianiste06 »

Donc en fait, les macros longues concernent principalement, quand on appelle une partie de texte qui inclue plusieurs paragraphes.
Bref, en maths, on utilise que des macros courtes... donc c'est plus pour les littéraires que ca prend un sens ?

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 809
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Colorier une cellule de tableau

Message par un bon petit »

pianiste06 a écrit :
mercredi 29 juillet 2020, 11:36
Bref, en maths, on utilise que des macros courtes...
Amusant. Mais complètement faux.
pianiste06 a écrit :
mercredi 29 juillet 2020, 11:36
donc c'est plus pour les littéraires que ca prend un sens ?
Et bien allons-y !!! Le gros poncif littéraires/scientifiques qui refait surface à cette occasion !