Versuch, eine Tabelle mit farbigem Hintergrund zu erstellen

Versuch, eine Tabelle mit farbigem Hintergrund zu erstellen

Ich versuche, die Hintergrundfarben und \h-Linien zu ändern, aber das Ergebnis entspricht nicht meinen Erwartungen.

Dies ist der Code, den ich verwende:

\documentclass[a4paper,10pt,twoside,openright]{scrreprt} 
\usepackage[brazil]{babel} 
\usepackage[pdftex,luatex,usenames,dvipsnames]{color}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx} 
\usepackage{amsmath} 
\usepackage{multirow}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{array} 
\usepackage{colortbl}
\usepackage[sfdefault]{roboto}

\definecolor{azul}{RGB}{31,90,153}
\definecolor{quadro}{RGB}{201,214,229}

\newcommand\mrh{\color{white}\bfseries}
\newcommand\mrc[1]{\begin{tabular}{@{}l@{}} #1 \end{tabular}}
\setlength\arrayrulewidth{1.0pt}

\begin{document}

\begin{table}[tbh]
    \centering
    \caption{Nova tabela avaliação nutricional em crianças menores de 5 anos}
    \renewcommand\arraystretch{1.5}
    \arrayrulecolor{white}
    \begin{small} 
        \begin{tabular}{|l|c|c|c|c|}
            \hline
            \rowcolor{azul} 
            & \mrh{Peso para idade} & \mrh{Peso para estatura} & \mrh{IMC para idade} & \mrh{Estatura para idade} \\ \hline
            \rowcolor{quadro} \textbf{Abaixo de -3 DP} & Muito baixo peso & Magreza acentuada & Magreza acentuada & Muito baixa estatura \\ \hline
            \rowcolor{quadro} \textbf{Entre -3 e -2 DP} & Baixo peso & Magreza & Magreza & Baixa estatura \\ \hline
            \rowcolor{quadro} \textbf{Entre -2 e -1 DP} & \multirow{3}{*}{Peso adequado} & \multirow{2}{*}{Eutrofia} & \multirow{2}{*}{Eutrofia} & \multirow{5}{*}{Estatura adequada} \\ \cline{1-1}
            \rowcolor{quadro} \textbf{Entre -1 e +1 DP} &  &  &  &  \\ \cline{1-1} \cline{3-4}
            \rowcolor{quadro} \textbf{Entre +1 e +2 DP} &  & Risco de sobrepeso & Risco de sobrepeso &  \\ \cline{1-4}
            \rowcolor{quadro} \textbf{Entre +2 e +3 DP} & \multirow{2}{*}{Peso elevado} & Sobrepeso & Sobrepeso &  \\ \cline{1-1} \cline{3-4}
            \rowcolor{quadro} \textbf{Acima de +3 DP} &  & Obesidade & Obesidade &  \\ \hline
        \end{tabular}
    \end{small}%
    \\
    \centering
    \footnotesize{\textbf{Fonte:} adaptado do Manual de Avaliação Nutricional da Sociedade Brasileira de Pediatria (2009)}
\end{table}

\end{document}

Dies ist das Ergebnis:

Falsche Hintergrundfarbe der Tabelle

Kann mir jemand helfen, das Problem zu beheben, damit es besser aussieht?

Antwort1

In einer einfachen tabularUmgebung sind solche farbigen Tabellen nicht so einfach zu erstellen. In Bezug auf bestehende Fragen und Antworten zu den ThemenHintergrundfarben in mehrzeiligen ZellenUndRegeln in farbigen mehrzeiligen ZellenSie könnten Folgendes tun:

Verwenden Sie für Befehle negative Ganzzahlen \multirowund platzieren Sie den Text in der untersten Zelle. Auf diese Weise wird der Text nicht von der Hintergrundfarbe der Zelle in der/den nächsten Zeile(n) verdeckt.

Verwenden Sie das hhlinePaket, um die Teilregeln zu zeichnen, beachten Sie jedoch, dass Sie die Farbe mehrmals ändern müssen, um das gewünschte Ergebnis zu erzielen.

\documentclass{article}
\usepackage[margin=2cm]{geometry}
\usepackage{multirow, hhline, colortbl}
\usepackage[sfdefault]{roboto}

\definecolor{azul}{RGB}{31,90,153}
\definecolor{quadro}{RGB}{201,214,229}

\newcommand\mrh{\color{white}\bfseries}
\newcommand\mrc[1]{\begin{tabular}{@{}l@{}} #1 \end{tabular}}
\setlength\arrayrulewidth{1.0pt}

\begin{document}

\begin{table}
    \caption{Nova tabela avaliação nutricional em crianças menores de 5 anos}
    \renewcommand\arraystretch{1.5}
    \arrayrulecolor{white}
    \begin{small} 
        \begin{tabular}{|l|c|c|c|c|}
            \hline
            \rowcolor{azul} 
            & \mrh{Peso para idade} & \mrh{Peso para estatura} & \mrh{IMC para idade} & \mrh{Estatura para idade} \\ \hline
            \rowcolor{quadro} \textbf{Abaixo de -3 DP} & Muito baixo peso & Magreza acentuada & Magreza acentuada & Muito baixa estatura \\ \hline
            \rowcolor{quadro} \textbf{Entre \textminus 3 e \textminus 2 DP} & Baixo peso & Magreza & Magreza & Baixa estatura \\ \hline
            \rowcolor{quadro} \textbf{Entre \textminus 2 e \textminus 1 DP} &  &  &  &  \\ 
                \hhline{>{\arrayrulecolor{white}}->{\arrayrulecolor{quadro}}----}
            \rowcolor{quadro} \textbf{Entre \textminus 1 e +1 DP} &  & \multirow{-2}{*}{Eutrofia} & \multirow{-2}{*}{Eutrofia} & \\ 
                \hhline{>{\arrayrulecolor{white}}->{\arrayrulecolor{quadro}}->{\arrayrulecolor{white}}-->{\arrayrulecolor{quadro}}-}
            \rowcolor{quadro} \textbf{Entre +1 e +2 DP} & \multirow{-3}{*}{Peso adequado} & Risco de sobrepeso & Risco de sobrepeso &  \\ 
                \hhline{>{\arrayrulecolor{white}}---->{\arrayrulecolor{quadro}}-}
            \rowcolor{quadro} \textbf{Entre +2 e +3 DP} &  & Sobrepeso & Sobrepeso &  \\ 
                \hhline{>{\arrayrulecolor{white}}->{\arrayrulecolor{quadro}}->{\arrayrulecolor{white}}-->{\arrayrulecolor{quadro}}-}
            \rowcolor{quadro} \textbf{Acima de +3 DP} & \multirow{-2}{*}{Peso elevado} & Obesidade & Obesidade & \multirow{-5}{*}{Estatura adequada} \\ \hline
        \end{tabular}
    \end{small}%
    \\
    \centering
    \footnotesize{\textbf{Fonte:} adaptado do Manual de Avaliação Nutricional da Sociedade Brasileira de Pediatria (2009)}
\end{table}

\end{document}

Bildbeschreibung hier eingeben

Die Dinge sind leichter zu erreichen mit demtabularrayoder dernicematrixPakete. Schauen Sie sich auf dieser Site um, um Beispiele zu finden, oder schauen Sie in die oben verlinkten Handbücher.

Antwort2

{NiceTabular}Zur Information: Hier ist eine Möglichkeit, diese Tabelle mit zu erstellen nicematrix.

\documentclass{article}
\usepackage[margin=2cm]{geometry}
\usepackage[sfdefault]{roboto}
\usepackage{nicematrix}
\usepackage{xcolor}

\begin{document}

\begin{table}
\caption{Nova tabela avaliação nutricional em crianças menores de 5 anos}
\renewcommand\arraystretch{1.5}
\centering
\small
\begin{NiceTabular}{lcccc}[hvlines-except-borders,rules={color=white,width=1pt}]
\CodeBefore
  \rowcolor[RGB]{31,90,153}{1}
  \rowcolor[RGB]{201,214,229}{2-*}
\Body
                                     & Peso para idade            & Peso para estatura    & IMC para idade        & Estatura para idade \\ 
Abaixo de -3 DP                      & Muito baixo peso           & Magreza acentuada     & Magreza acentuada     & Muito baixa estatura \\ 
Entre \textminus 3 e \textminus 2 DP & Baixo peso                 & Magreza               & Magreza               & Baixa estatura \\ 
Entre \textminus 2 e \textminus 1 DP & \Block{3-1}{Peso adequado} & \Block{2-1}{Eutrofia} & \Block{2-1}{Eutrofia} & \Block{5-1}{Estatura adequada} \\ 
Entre \textminus 1 e +1 DP           &                            &                       &                       & \\ 
Entre +1 e +2 DP                     &                            & Risco de sobrepeso \\
Entre +2 e +3 DP                     & \Block{2-1}{Peso elevado}  & Sobrepeso             & Sobrepeso \\
Acima de +3 DP                       &                            & Obesidade             & Obesidade \\
\end{NiceTabular} \\
\footnotesize{\textbf{Fonte:} adaptado do Manual de Avaliação Nutricional da Sociedade Brasileira de Pediatria (2009)}
\end{table}

\end{document}

Ausgabe des obigen Codes

verwandte Informationen