Wie behält man einen Zellenrahmen mit einer Spaltenhintergrundfarbe bei?

Wie behält man einen Zellenrahmen mit einer Spaltenhintergrundfarbe bei?

Ich benutzte meineAnzeigetafelschon seit einiger Zeit, aber es scheint, als wäre ich nicht sicher, in welche Spalte ich schreiben muss.

Meine Idee war also, jede zweite Spalte einzufärben, damit ich weiß, welche ich verwenden muss.

Folgendes habe ich bisher bekommen:

\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}

Jetzt hat jede andere Spalte einen Hintergrund, aber ich habe die Ränder dort verloren.

Ich habe geschautHierUndHierzur Inspiration, aber ich kann meinen Fehler nicht erkennen.

Wie färbe ich also den Hintergrund und behalte gleichzeitig die Ränder bei?

Antwort1

Der Trick bei Problemen mit Linien in farbigen Tabellen besteht in der Verwendung hhline, daher habe ich neu definiert \customBorder. Beachten Sie, dass die sehr dünnen weißen Linien in den farbigen Zellen vom Viewer zu kommen scheinen.

Einige Erklärungen zum Code:

Ein \hhlinewird durch eine Folge von Symbolen beschrieben (eines pro Spalte): entweder ~(keine Regel in der entsprechenden Spalte), oder -(eine einzelne Regel) oder =(eine doppelte Regel). Diese Symbole können durch Symbole getrennt werden, die beschreiben, wie sich horizontale und vertikale Regeln überschneiden ( |, ||und :). Wenn ein Motto mehrmals wiederholt wird, arraykann außerdem eine kurze Syntax verwendet werden, die der Paketsyntax für wiederholte Spaltentypen ähnelt. Hier habe ich verwendet *{5}{...}, was bedeutet, dass dasselbe Motto 4 Mal wiederholt wird (und 5 Mal verwendet wird!). Die Syntax >{...}ermöglicht es auch, vor dem folgenden Segment Code einzufügen (z. B. um die Regelfarbe vom nächsten Segment aus zu ändern).

Um weiße Linien in farbigen Zellen zu löschen, habe ich sie, ~ die verwendet worden wären, wenn die Zelle nicht farbig wäre, durch ein Liniensegment derselben Farbe wie die Zelle ersetzt, wie hier |>{\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} 

Bildbeschreibung hier eingeben

Antwort2

Ich habe gelernt, wie man mit dem störenden Effekt weißer Linien in farbigen Zellen umgeht, indem ich die Technik verwende, die im Kommentar von Ulrike Fischer in Probleme mit Linien- und Zellfarben erneut betrachtet

Es ist lediglich notwendig, die Leine etwas anzuheben.

Ersetzen Sie im obigen Code

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

mit

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

Möglicherweise handelt es sich dabei nur um einen PDF-Viewer-Effekt, aber man weiß nie, was bei einer digitalen Druckmaschine herauskommt.

Originalausgabe Original

Mit dem geänderten Code keine weißen Linien!

verwandte Informationen