Intentando hacer una mesa con un fondo de color.

Intentando hacer una mesa con un fondo de color.

Estoy intentando cambiar los colores de fondo y las líneas \h, pero el resultado no es el que esperaba.

Este es el código que uso:

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

Este es el resultado:

Tabla de fondo de color incorrecto

¿Alguien puede ayudarme a solucionarlo y se ve mejor?

Respuesta1

En un tabularentorno sencillo, estas mesas de colores no son demasiado sencillas de construir. En referencia a las preguntas y respuestas existentes sobre las cuestiones decolores de fondo en celdas de varias filasyreglas en celdas coloreadas de varias filaspodrías hacer lo siguiente:

Utilice números enteros negativos para \multirowlos comandos y coloque el texto en la celda más inferior. De esta manera, el color de fondo de la celda de las siguientes filas no cubrirá el texto.

Utilice el hhlinepaquete para dibujar las reglas parciales, pero tenga en cuenta que debe cambiar el color varias veces para obtener el resultado deseado.

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

ingrese la descripción de la imagen aquí

Las cosas son más fáciles de lograr con eltabularrayo elnicematrixpaquetes. Mire este sitio para encontrar ejemplos o consulte los manuales vinculados anteriormente.

Respuesta2

Para información. Aquí hay una manera de crear esa tabla con {NiceTabular}of 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}

Salida del código anterior

información relacionada