Re: \multirow and colored table

#14608
DMW
    Up
    0
    Down
    ::

    Cerco di spiegarmi meglio.

    Il seguente codice centra il testo fra 2 righe, applica lo sfondo, ma taglia a metà il testo stesso!
    E’ come se venisse sovrapposta una riga vuota colorata…

    Ovvero sia, tutto bene nel caso di \hiderowcolors, mentre il problema si presenta con \showrowcolors

    `
    \begin{table}[!pt]
    \centering%
    \begin{tabular}{cc}
    \hline
    A &B \\
    \hline
    \hiderowcolors
    \multirow{2}*{600.00} &\multirow{2}*{1093.20} \\
    & \\
    \showrowcolors
    \multirow{2}*{10.20} &\multirow{2}*{19.83} \\
    & \\
    \hline
    \end{tabular}
    \caption{PIPPO}%
    \label{tab:pippo}%
    \end{table}
    `

    Questa volta spero di essermi spiegato meglio!!!
    Grazie

    Il problema, secondo me è di multirow. Per queste cose usa colortbl ed il pacchetto hhline.

    Comunque ti ho fatto un esempio che sfrutta il fatto che rowcolor prende anche parametri negativi.
    `
    \documentclass{article}

    \usepackage{array}
    \usepackage{xcolor}
    \usepackage{hhline}
    \usepackage{colortbl}
    \newcommand\HHline{\\[-\arrayrulewidth]\hhline}
    \usepackage{multirow}

    \definecolor{jgray}{rgb}{.4,.4,.4}
    \setlength\minrowclearance{-2pt}
    \setlength\arrayrulewidth{1pt}
    \arrayrulecolor{jgray}

    \begin{document}

    \begin{tabular}{|>{\columncolor[gray]{0.8}}p{.25\textwidth}|p{.65\textwidth}|}
    \hline
    \rowcolor{black}
    \color{white}\textbf{Col1}&\color{white}\textbf{Col2}
    \HHline{–}
    \multicolumn{1}{|>{\columncolor[rgb]{0.8,0.8,0.8}}c|}{}&\cellcolor{gray}\color{white}1
    \HHline{~-}
    &\cellcolor{gray}\color{white}2
    \HHline{~-}
    &\cellcolor{gray}\color{white}3
    \HHline{~-}
    \multicolumn{1}{|>{\columncolor[rgb]{0.8,0.8,0.8}}c|}{\multirow{-5}{*}{4 numeri}}
    &\cellcolor{gray}\color{white}4
    \\\hline
    \end{tabular}

    \end{document}

    `
    con il primo
    `
    \multicolumn{1}{|>{\columncolor[rgb]{0.8,0.8,0.8}}c|}{}`
    faccio la prima colonna grigia
    e poi alla fine aggiungo
    `
    \multicolumn{1}{|>{\columncolor[rgb]{0.8,0.8,0.8}}c|}{\multirow{-5}{*}{4 numeri}}`

    per inserire la scritta 4 numeri che altrimenti non si vedrebbe.

    Infatti questo codice non la mette:
    `
    \begin{tabular}{|>{\columncolor[gray]{0.8}}p{.25\textwidth}|p{.65\textwidth}|}
    \hline
    \rowcolor{black}
    \color{white}\textbf{Col1}&\color{white}\textbf{Col2}
    \HHline{–}
    \multicolumn{1}{|>{\columncolor[rgb]{0.8,0.8,0.8}}c|}{\multirow{4}{*}{4 numeri}}&\cellcolor{gray}\color{white}1
    \HHline{~-}
    &\cellcolor{gray}\color{white}2
    \HHline{~-}
    &\cellcolor{gray}\color{white}3
    \HHline{~-}
    &\cellcolor{gray}\color{white}4
    \\\hline
    \end{tabular}`

    se invece vuoi la scritta nella prima riga puoi usare semplicemente:
    `
    \begin{tabular}{|>{\columncolor[gray]{0.8}}p{.25\textwidth}|p{.65\textwidth}|}
    \hline
    \rowcolor{black}
    \color{white}\textbf{Col1}&\color{white}\textbf{Col2}
    \HHline{–}
    4 numeri&\cellcolor{gray}\color{white}1
    \HHline{~-}
    &\cellcolor{gray}\color{white}2
    \HHline{~-}
    &\cellcolor{gray}\color{white}3
    \HHline{~-}
    &\cellcolor{gray}\color{white}4
    \\\hline
    \end{tabular}`

    ______________________________________________________________________
    Infine ti propongo la soluzione migliore che fa uso del pacchetto longtable
    `\documentclass{article}
    %\usepackage{array} %non serve perché lo dovrebbe caricare longtable comunque
    %se lo metti non succede nulla.
    \usepackage{longtable}
    \usepackage{xcolor}
    \usepackage{hhline}
    \usepackage{colortbl}
    \newcommand\HHline{\\[-\arrayrulewidth]\hhline}
    \usepackage{multirow}

    \definecolor{jgray}{rgb}{.4,.4,.4}
    \setlength\minrowclearance{-2pt}
    \setlength\arrayrulewidth{1pt}
    \arrayrulecolor{jgray}

    \begin{document}
    \begin{center}
    \begin{longtable}{|>{\columncolor[gray]{0.8}}p{.25\textwidth}|p{.65\textwidth}|}
    \hline
    \rowcolor{black}
    \color{white}\textbf{Col1}&\color{white}\textbf{Col2}
    \HHline{–}
    \multicolumn{1}{|>{\columncolor[rgb]{0.8,0.8,0.8}}c|}{}&\cellcolor{gray}\color{white}1
    \HHline{~-}
    &\cellcolor{gray}\color{white}2
    \HHline{~-}
    &\cellcolor{gray}\color{white}3
    \HHline{~-}
    \multicolumn{1}{|>{\columncolor[rgb]{0.8,0.8,0.8}}c|}{\multirow{-4}{*}{4 numeri}}
    &\cellcolor{gray}\color{white}4
    \\\hline
    \end{longtable}
    \end{center}
    \end{document} `

    il risultato è ottimo. Ho usato l’ambiente center, comunque poi usare anche \centering, l’importante è mettere una parentesi graffa aperta prima e quella chiusa dopo la tabella.
    `
    testo

    {\centering
    \begin{longtable}…
    \end{longtable}
    }

    \noindent testo
    `

    ciao.

    Andrea

    PS: leggiti la documentazione di colortbl e hhline.

    Go to top