Como manter a borda da célula com a cor de fundo da coluna?

Como manter a borda da célula com a cor de fundo da coluna?

Eu usei meuplacarjá faz um tempo, mas parece que é difícil saber em qual coluna preciso escrever.

Então minha ideia era colorir todas as outras colunas para saber qual delas preciso usar.

Aqui está o que consegui até agora:

\documentclass{letter}

\usepackage[a4paper, landscape, margin=0.5cm]{geometry}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{graphicx}
\usepackage{color, colortbl}

\setlength{\extrarowheight}{14pt}

\definecolor{Gray}{gray}{0.85}

\newcolumntype{g}{>{\columncolor{Gray}}c}
\newcolumntype{G}{>{\columncolor{Gray}}X}

\newcommand\customTable{
    \begin{tabularx}{\textwidth}{cc|c|X|g|G|c|X|g|G|c|X|g|G|c|X|g|G|c|X|g|G|c|c|}
        \cline{3-22}

        & & \multicolumn{20}{ c| }{\LARGE Joueurs} \\ \cline{3-22}

        & & \multicolumn{4}{ c| }{} & \multicolumn{4}{ c| }{} & \multicolumn{4}{ c| }{} & \multicolumn{4}{ c| }{} & \multicolumn{4}{ c| }{} \\ \cline{1-24}

        \customRow{10}{\multirow{20}{*}{\rotatebox[origin=c]{90}{\LARGE Cartes}}}\cline{2-24}
        \customRow{9}{}\cline{2-24}
        \customRow{8}{}\cline{2-24}
        \customRow{7}{}\cline{2-24}
        \customRow{6}{}\cline{2-24}
        \customRow{5}{}\cline{2-24}
        \customRow{4}{}\cline{2-24}
        \customRow{3}{}\cline{2-24}
        \customRow{2}{}\cline{2-24}
        \customRow{1}{}\cline{1-22}
    \end{tabularx}
}

\newcommand\customHeader[2]{
    \multicolumn{1}{|c}{#2} &
    \multicolumn{1}{|c|}{\multirow{2}{*}{\LARGE #1}}
}

\newcommand\emptyCells{
    & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & ~~~ \\
}

\newcommand\customBorder{
    \cline{3-3} \cline{5-5} \cline{7-7} \cline{9-9} \cline{11-11} \cline{13-13} \cline{15-15} \cline{17-17} \cline{19-19} \cline{21-21} \cline{23-24}
}

\newcommand\emptyDoubleCells{
    \multicolumn{1}{|c}{} & \multicolumn{1}{|c|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{g|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{g|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{g|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{g|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{g|}{} \\
}

\newcommand\customRow[2]{
    \customHeader{#1}{#2}\emptyCells\customBorder\emptyDoubleCells
}

\begin{document}
    \pagenumbering{gobble}
    \customTable
    \customTable
\end{document}

Agora, todas as outras colunas têm um plano de fundo, mas perdi as bordas delas.

eu olheiaquieaquiem busca de inspiração, mas não consigo identificar onde está o meu erro.

Então, como faço para colorir o fundo e manter as bordas ao mesmo tempo?

Responder1

O truque em caso de problemas com linhas em tabelas coloridas consiste em usar hhline, então redefini \customBorder. Observe que as linhas brancas muito finas nas células coloridas parecem vir do observador.

Algumas explicações sobre o código:

An \hhlineé descrito por uma sucessão de símbolos (um por coluna): ou ~(nenhuma regra na coluna correspondente), ou -(uma regra única) ou =(uma regra dupla). Esses símbolos podem ser separados por símbolos que descrevem como regra horizontal e regra vertical cruzam ( |, ||e :). Além disso, se um lema for repetido várias vezes, uma sintaxe curta semelhante à arraysintaxe do pacote para o tipo de coluna repetida pode ser usada. Aqui usei *{5}{...}, o que significa que o mesmo lema é repetido 4 vezes (e usei 5!). Além disso, a sintaxe >{...}permite inserir código antes do segmento seguinte (por exemplo, para alterar a cor da regra do próximo segmento).

Para deletar regras brancas em células coloridas, substituí ~ o que teria sido usado se a célula não fosse colorida, por um segmento de regra da mesma cor da célula, como este |>{\arrayrulecolor{Gray}->{\arrayrulecolor{black}|- ....

\documentclass{letter}

\usepackage[a4paper, landscape, margin=0.5cm]{geometry}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{graphicx}
\usepackage[table]{xcolor}
\usepackage{hhline, booktabs}
\newcommand\mycline{\hhline{|~*{23}{|-}}}

\setlength{\extrarowheight}{14pt}

\definecolor{Gray}{gray}{0.85}

\newcolumntype{g}{>{\columncolor{Gray}}c}
\newcolumntype{G}{>{\columncolor{Gray}}X}

\newcommand\customTable{
    \begin{tabularx}{\textwidth}{cc|*{5}{c|X|g|G|}c|c|}
        \cline{3-22}

        & & \multicolumn{20}{ c| }{\LARGE Joueurs} \\ \cline{3-22}

        & & \multicolumn{4}{ c| }{} & \multicolumn{4}{ c| }{} & \multicolumn{4}{ c| }{} & \multicolumn{4}{ c| }{} & \multicolumn{4}{ c| }{} \\ %\cline{1-24}
\hhline{*{24}{-}}

        \customRow{10}{\multirow{20}{*}{\rotatebox[origin=c]{90}{\LARGE Cartes}}}%\cline{2-24}
\mycline
        \customRow{9}{}\mycline
        \customRow{8}{}\mycline
        \customRow{7}{}\mycline
        \customRow{6}{}\mycline
        \customRow{5}{}\mycline
        \customRow{4}{}\mycline
        \customRow{3}{}\mycline
        \customRow{2}{}\mycline
        \customRow{1}{}\cline{1-22}
    \end{tabularx}
}

\newcommand\customHeader[2]{
    \multicolumn{1}{|c|}{#2} &
\multicolumn{1}{c|}{\multirow{2}{*}{\LARGE #1}}
}

\newcommand\emptyCells{
    & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & ~~~ \\
}

\newcommand\customBorder{%
\hhline{|~|~|*{5}{>{\arrayrulecolor{black}}-~|->{\arrayrulecolor{Gray}}->{\arrayrulecolor{black}}|}--}
}%

\newcommand\emptyDoubleCells{
    \multicolumn{1}{|c|}{} & \multicolumn{1}{c|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{g|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{g|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{g|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{g|}{} & \multicolumn{2}{c|}{} & \multicolumn{2}{g|}{} \\
}

\newcommand\customRow[2]{
    \customHeader{#1}{#2}\emptyCells\customBorder\emptyDoubleCells
}

\begin{document}

    \pagenumbering{gobble}
    \customTable
    \customTable

\end{document} 

insira a descrição da imagem aqui

Responder2

Aprendi como lidar com o incômodo efeito das linhas brancas nas células coloridas usando a técnica explicada no comentário de Ulrike Fischer em problemas de hhline e cor de célula revisitados

Só é necessário levantar um pouco a linha.

No código acima, substitua

\newcommand\emptyCells{
    & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & ~~~ \\
}

com

    \newcommand\emptyCells{
    & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & & ~~~ & ~~~ \\[-0.5pt] % small shift up <<<<<<<<
}

Pode ser apenas um efeito de visualização de PDF, mas você nunca sabe o que sairá de uma impressora digital.

Saída original original

Com o código modificado sem linhas brancas!

informação relacionada