[Résolu] Chevauchement de cellules \rowcolor et \cellcolor

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Chevauchement de cellules \rowcolor et \cellcolor

Messagepar raphkebab » Mardi 31 Décembre 2013, 14:41

Bonjour,

Je suis actuellement confronté à un petit problème avec les commandes \rowcolor et \cellcolor. Comme vous pouvez le voir avec mon exemple ces deux commandes ne reconnaissent pas l'instruction @{}. Il y a donc un chevauchement qui masque une partie des informations de la deuxième colonne.

Code: Tout sélectionner
\documentclass[a4paper,10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[english]{babel}

%----------------------------------------
%couleur
\usepackage{colortbl}
\definecolor{red_lancet}{rgb}{.7,0.03,0.22}
\definecolor{red_tab}{rgb}{0.96,0.88,0.86}
%----------------------------------------

\usepackage[framemethod=default]{mdframed}
\newmdenv[backgroundcolor=red_tab,linecolor=red_lancet]{tabc}

\begin{document}

\begin{table}[htbp]
    \begin{tabc}
        \begin{center}
            \begin{tabular}{l r@{} c}
                & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                \rowcolor{white} Female vs Male & $1{\cdot}3$~~&(1${\cdot}$1-1${\cdot}$6)\\
            \end{tabular}
        \end{center}
        \textsf{\textbf{\caption{\label{mif_max} Statistical results of the logistic regression on global fatigue}}}
    \end{tabc}
\end{table}

\end{document}
Dernière édition par raphkebab le Vendredi 03 Janvier 2014, 00:12, édité 1 fois.
raphkebab
Kilo-utilisateur
 
Messages: 227
Inscription: Mardi 31 Décembre 2013, 12:37
Localisation: Caen
Statut actuel: Post-bac | Doctorat

Publicité

Re: Chevauchement de cellules avec \rowcolor et \cellcolor

Messagepar rebouxo » Mardi 31 Décembre 2013, 17:10

L'extension xcolor résoudrait probablement le problème. Il me semble que colortab est dépréciée, mais je ne suis pas sur.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6915
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Chevauchement de cellules avec \rowcolor et \cellcolor

Messagepar raphkebab » Mercredi 01 Janvier 2014, 11:22

Bonjour,

Merci de votre réponse. L'extension xcolor ne définit pas les commandes \rowcolor et \cellcolor. Son utilisation aux côtés de colortbl ne résout pas non plus le problème.
raphkebab
Kilo-utilisateur
 
Messages: 227
Inscription: Mardi 31 Décembre 2013, 12:37
Localisation: Caen
Statut actuel: Post-bac | Doctorat

Re: Chevauchement de cellules avec \rowcolor et \cellcolor

Messagepar balf » Mercredi 01 Janvier 2014, 15:27

L'extension xcolor a des commandes \rowcolors et \rowcolors*, mais dont l'action est différente de celle de \rowcolor de colortbl.

Cela dit, dans votre code, il suffit de remplacer
& $1{\cdot}3$~~&
par
& $1{\cdot}3$~~\mbox{}&
Vous avez oublié qu'une espace insécable doit relier deux choses.

Mais il me semble plus simple, conceptuellement, de redéfinir la longueur \tabcolsep. Je propose le code suivant, qui donne à peu près le même résultat :
Code: Tout sélectionner
        \begin{center}\renewcommand{\tabcolsep}{3pt}
            \begin{tabular}{l r c}
                & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                \rowcolor{white} Female vs Male & $1{\cdot}3$&(1${\cdot}$1-1${\cdot}$6)\\
            \end{tabular}
        \end{center}


B.A.
balf
Zetta-utilisateur
 
Messages: 3812
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Chevauchement de cellules avec \rowcolor et \cellcolor

Messagepar raphkebab » Jeudi 02 Janvier 2014, 18:38

Il n'y a besoin de rien après un ~. J'ai déjà testé plusieurs fois. :-P

Il y a une petite erreur dans mon code, il n'y a qu'un ~ et non deux.

Le problème avec ta solution c'est qu'elle me fait un tableau différant des autres. :(

Par ailleurs, si je met plus d'un espace insécable mon tableau devient moche.
raphkebab
Kilo-utilisateur
 
Messages: 227
Inscription: Mardi 31 Décembre 2013, 12:37
Localisation: Caen
Statut actuel: Post-bac | Doctorat

Re: Chevauchement de cellules avec \rowcolor et \cellcolor

Messagepar balf » Jeudi 02 Janvier 2014, 19:37

Oui, mais avec un seul ~ ou deux, il y a chevauchement chez moi. Il faut deux ~~ et \mbox pour que ce soit correct. Je joins le résultat du code-source utilisé.
Code: Tout sélectionner
\documentclass[a4paper,10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[english]{babel}
\usepackage[textheight = 24cm]{geometry}
\setcounter{totalnumber}{6}
%----------------------------------------
%couleur
\usepackage{colortbl}
\definecolor{red_lancet}{rgb}{.7,0.03,0.22}
\definecolor{red_tab}{rgb}{0.96,0.88,0.86}
%----------------------------------------
\usepackage[framemethod=default]{mdframed}
\newmdenv[backgroundcolor=red_tab,linecolor=red_lancet]{tabc}

\begin{document}
Avec \verb+\tabcolsep = 3pt+ :
\begin{table}[htbp]
    \begin{tabc}
        \begin{center}\renewcommand{\tabcolsep}{3pt}
            \begin{tabular}{l r c}
                & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                \rowcolor{white} Female vs Male & $1{ · }3$&(1${ · }$1-1${ · }$6)\\
            \end{tabular}
        \end{center}
        \textsf{\textbf{\caption{\label{mif_max} Statistical results of the logistic regression on global fatigue}}}
    \end{tabc}
\end{table}

Avec \verb+~, sans \mbox{}+ : 
\begin{table}[htbp]
    \begin{tabc}
        \begin{center}
            \begin{tabular}{l r@{} c}
                & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                \rowcolor{white} Female vs Male & $1{ · }3$~&(1${ · }$1-1${ · }$6)\\
            \end{tabular}
        \end{center}
        \textsf{\textbf{\caption{\label{mif_max1} Statistical results of the logistic regression on global fatigue}}}
    \end{tabc}
\end{table}

Avec \verb+~~, sans \mbox{}+ :
\begin{table}[htbp]
    \begin{tabc}
        \begin{center}
            \begin{tabular}{l r@{} c}
                & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                \rowcolor{white} Female vs Male & $1{ · }3$~~&(1${ · }$1-1${ · }$6)\\
            \end{tabular}
        \end{center}
        \textsf{\textbf{\caption{\label{mif_max1} Statistical results of the logistic regression on global fatigue}}}
    \end{tabc}
\end{table}

Avec \verb+~\mbox{}+ :
\begin{table}[htbp]
    \begin{tabc}
        \begin{center}
            \begin{tabular}{l r@{} c}
                & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                \rowcolor{white} Female vs Male & $1{ · }3$~\mbox{}&(1${ · }$1-1${ · }$6)\\
            \end{tabular}
        \end{center}
        \textsf{\textbf{\caption{\label{mif_max2} Statistical results of the logistic regression on global fatigue}}}
    \end{tabc}
\end{table}

Avec \verb+~~\mbox{}+ :
\begin{table}[htbp]
    \begin{tabc}
        \begin{center}
            \begin{tabular}{l r@{} c}
                & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                \rowcolor{white} Female vs Male & $1{ · }3$~~\mbox{}&(1${ · }$1-1${ · }$6)\\
            \end{tabular}
        \end{center}
        \textsf{\textbf{\caption{\label{mif_max2} Statistical results of the logistic regression on global fatigue}}}
    \end{tabc}
\end{table}

\end{document}


Par ailleurs, les 5 tableaux sont très peu différents, hormis les chevauchements de colonnes. Maintenant, dans la « vraie vie », je suppose que d'autres éléments interviennent.

B.A.
Fichiers joints
testcolortable.pdf
(78.47 Kio) Téléchargé 70 fois
balf
Zetta-utilisateur
 
Messages: 3812
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Chevauchement de cellules avec \rowcolor et \cellcolor

Messagepar raphkebab » Jeudi 02 Janvier 2014, 23:47

J'ai fait un test et \mbox{} ne serre à rien. Quand tu fais ~~\mbox{} c'est la même chose que ~~~. On peut le voir sur ton exemple il y a un cran de décalage.

Je viens de trouver un code pour faire apparaitre certaine bordure que j'ai peu transposé. :)
La solution consiste à réimprimer par-dessus le tableau sans les couleurs.

Code: Tout sélectionner
    \documentclass[a4paper,10pt]{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{lmodern}
    \usepackage[english]{babel}
    \usepackage[textheight = 24cm]{geometry}
    \setcounter{totalnumber}{6}
    %----------------------------------------
    %couleur
    \usepackage{colortbl}
    \definecolor{red_lancet}{rgb}{.7,0.03,0.22}
    \definecolor{red_tab}{rgb}{0.96,0.88,0.86}
    %----------------------------------------
    \usepackage[framemethod=default]{mdframed}
    \newmdenv[backgroundcolor=red_tab,linecolor=red_lancet]{tabc}

    \begin{document}
   

    Avec \verb+~, sans \mbox{}+ :
    \begin{table}[htbp]
        \begin{tabc}
             \centering
                \begin{tabular}{l r@{} c}
                    & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                    & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                    \rowcolor{white} Female vs Male & $1{{\cdot}}3$~&(1${{\cdot}}$1-1${{\cdot}}$6)\\
                \end{tabular}%
                \llap{\begin{tabular}{l r@{} c}
                                    & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                                    & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                                    Female vs Male & $1{{\cdot}}3$~&(1${{\cdot}}$1-1${{\cdot}}$6)\\
                \end{tabular}}
            \textsf{\textbf{\caption{\label{mif_max1} Statistical results of the logistic regression on global fatigue}}}
        \end{tabc}
    \end{table}
    \end{document}

Il faut noter que le % après le dernier tableau n'ai pas un commentaire partiellement effacé mais empêche un décalage sur la droite du seconde tableau.
raphkebab
Kilo-utilisateur
 
Messages: 227
Inscription: Mardi 31 Décembre 2013, 12:37
Localisation: Caen
Statut actuel: Post-bac | Doctorat

Re: Chevauchement de cellules avec \rowcolor et \cellcolor

Messagepar balf » Vendredi 03 Janvier 2014, 00:32

Oui, le % après le premier tableau évite une espace parasite. Cela dit, l'utilisation ici de \llap pour tout un tableau me paraît bien une façon de faire bien compliquée…
La présence du \mbox{} sert au moins à avoir seulement 2 ~. En fait , pour une raison que je ne comprends pas tout se passe comme si ~ avait besoin d'avoir quelque chose après lui, que ce soit un autre ~ou \mbox{}. Si on expérimente un peu on s'aperçoit qu'un seul ~ ou rien, ça donne le même résultat. De même ~~ ou ~\mbox{} (une seule espace insécable}, ou encore ~~~ ou ~~\mbox{} (2 espaces). Le dernier ~ ne compte pas entant que tel, et, très franchement, il me paraît plus naturel (je modifie ma proposition initiale) de déclarer la table comme :
Code: Tout sélectionner
\begin{table}{l r @{\hspace{7pt}} c}

Pour les espaces intercolonnes, ça donne sensiblement le même résultat à 0,2 point près (mesuré avec GSview).

B.A.
balf
Zetta-utilisateur
 
Messages: 3812
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: [Résolu] Chevauchement de cellules \rowcolor et \cellcol

Messagepar raphkebab » Vendredi 03 Janvier 2014, 01:07

Non tu fais erreur ~ n'a besoin de rien derrière. C'est \mbox{} qui rajoute l'équivalent d'un ~. ^^

Code: Tout sélectionner
    \documentclass[a4paper,10pt]{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{lmodern}
    \usepackage[english]{babel}
    \usepackage[textheight = 24cm]{geometry}
    \setcounter{totalnumber}{6}
    %----------------------------------------
    %couleur
    \usepackage{colortbl}
    \definecolor{red_lancet}{rgb}{.7,0.03,0.22}
    \definecolor{red_tab}{rgb}{0.96,0.88,0.86}
    %----------------------------------------
    \usepackage[framemethod=default]{mdframed}
    \newmdenv[backgroundcolor=red_tab,linecolor=red_lancet]{tabc}

    \begin{document}
    Avec \verb+~, sans \mbox{}+ :
    \begin{table}[htbp]
        \begin{tabc}
            \begin{center}
                \begin{tabular}{l r@{} c}
                    & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                    & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                    Female vs Male & $1{\cdot}3$~&(1${\cdot}$1-1${\cdot}$6)\\
                \end{tabular}
            \end{center}
            \textsf{\textbf{\caption{\label{mif_max1} Statistical results of the logistic regression on global fatigue}}}
        \end{tabc}
    \end{table}

    Avec \verb+~~, sans \mbox{}+ :
    \begin{table}[htbp]
        \begin{tabc}
            \begin{center}
                \begin{tabular}{l r@{} c}
                    & \multicolumn{2}{p{2cm}}{\centering Odds ratio} \\
                    & \multicolumn{2}{p{2cm}}{\centering (95\% CI)}\\
                    Female vs Male & $1{\cdot}3$~~&(1${\cdot}$1-1${\cdot}$6)\\
                \end{tabular}
            \end{center}
            \textsf{\textbf{\caption{\label{mif_max2} Statistical results of the logistic regression on global fatigue}}}
        \end{tabc}
    \end{table}
    \end{document}


C'est lourd d'utiliser \llap mais c'est la seule technique qui fasse exactement ce que je veux. Je t’avouerais que j'utilise latex pour que ça colle toujours parfaitement.
Mais je te remercie pour ta dernière proposition car si je mettais des ~, c'est que je ne savais pas redéfinir l'espace avec @{} et cela m'énervait au plus au point.
raphkebab
Kilo-utilisateur
 
Messages: 227
Inscription: Mardi 31 Décembre 2013, 12:37
Localisation: Caen
Statut actuel: Post-bac | Doctorat

Re: [Résolu] Chevauchement de cellules \rowcolor et \cellcol

Messagepar balf » Vendredi 03 Janvier 2014, 01:23

raphkebab a écrit:Non tu fais erreur ~ n'a besoin de rien derrière. C'est \mbox{} qui rajoute l'équivalent d'un ~. ^^


Sans vouloir chipoter, j'ai testé :
    ~ et « rien » : même résultat
    ~~ et ~\mbox{} : idem
    ~~~ et ~~\mbox{} : idem
Il me semble que la conclusion logique est que le \mbox{} et le dernier ~ ont la même fonction dans ce contexte. Comme on est à la fin d'une cellule du tableau, j'en conclus que le \mbox{} et le dernier ~ servent à rendre effectif le ~ précédent (autrement dit avec 3 ~~~, il n'en apparaît réellement que 2).

B.A.
balf
Zetta-utilisateur
 
Messages: 3812
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: [Résolu] Chevauchement de cellules \rowcolor et \cellcol

Messagepar raphkebab » Vendredi 03 Janvier 2014, 02:24

Cela m'étonne puis que je vois l'espace insécable dans ton pdf pour l'exemple "Avec ~, sans \mbox{} :"

As-tu essayé mon exemple sans le \rowcolor{white} ? Si ce n'est pas complétement collé c'est que le ~ est compté.
raphkebab
Kilo-utilisateur
 
Messages: 227
Inscription: Mardi 31 Décembre 2013, 12:37
Localisation: Caen
Statut actuel: Post-bac | Doctorat

Re: [Résolu] Chevauchement de cellules \rowcolor et \cellcol

Messagepar balf » Vendredi 03 Janvier 2014, 11:51

Avec ou sans rowcolor, ça n'a pas l'air de changer grand-chose, comme le montre le fichier joint, où j'ai groupé les variantes qui donnent le même résultat (n ~ et \mbox{}, ou bien n+1 ~). Je compile avec MiKTeX.

B.A.
Fichiers joints
testcolortable1.pdf
(86.58 Kio) Téléchargé 64 fois
balf
Zetta-utilisateur
 
Messages: 3812
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: [Résolu] Chevauchement de cellules \rowcolor et \cellcol

Messagepar raphkebab » Vendredi 03 Janvier 2014, 14:21

Oui je vois. :)

Cela vient du fait que j'ai centré la troisième colonne ce qui complique le calcule de distance entre les deux.
Code: Tout sélectionner
\begin{tabular}{l r@{} c}


Si on met :
Code: Tout sélectionner
\begin{tabular}{l r@{} l}


Cela résoud une parie du problème mais pas tout car du coup les \mbox{} n'ont plus d'effet. O_o
raphkebab
Kilo-utilisateur
 
Messages: 227
Inscription: Mardi 31 Décembre 2013, 12:37
Localisation: Caen
Statut actuel: Post-bac | Doctorat

Re: [Résolu] Chevauchement de cellules \rowcolor et \cellcol

Messagepar raphkebab » Mercredi 15 Janvier 2014, 12:13

J'ai créé une commande pour résoudre rapidement le problème sans devoir réécrire le tableau :

Code: Tout sélectionner
\documentclass[a4paper,10pt]{article}
    \usepackage[english]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{colortbl} %Couleur des tableaux
    \usepackage{lmodern}
    \usepackage{etoolbox}

%----------------------------------------
%var
    \newbool{boolean_color}
    \setbool{boolean_color}{true}
%-----------------------------------------
%new commande
   \let\initialrowcolor\rowcolor
    \renewcommand{\rowcolor}[1]{%
       \ifbool{boolean_color}{\initialrowcolor{#1}}{}}
    %1 Couleur de la ligne du tableau

    \newcommand{\tablecolor}[2]{
        \setbool{boolean_color}{true}
        \begin{table}
        \textcolor{white}{\input{#1}}%
        \setbool{boolean_color}{false}%
        \llap{\input{#1}}
        \setbool{boolean_color}{true}
        \caption{#2}
        \end{table}
        }
        %1 Chemin ver le tableau
        %2 Nom du tableau et label
%-----------------------------------------

\begin{document}

    \tablecolor{tableau}{\label{tab1}Titre tableau}

\end{document}


Fichier du tableau :
Code: Tout sélectionner
\begin{tabular}{l r@{} c}
                    \rowcolor{red} Female vs Male  & $1{{\cdot}}3$~&(1${{\cdot}}$1-1${{\cdot}}$6) \\
\end{tabular}


Je remercie tous ceux qui m'ont aidé à la contruire.
raphkebab
Kilo-utilisateur
 
Messages: 227
Inscription: Mardi 31 Décembre 2013, 12:37
Localisation: Caen
Statut actuel: Post-bac | Doctorat


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google Adsense [Bot], Grapeshot [Crawler] et 21 invités