배경색이 있는 테이블을 만들려고 합니다.

배경색이 있는 테이블을 만들려고 합니다.

배경색과 \hlines를 변경하려고 하는데 결과가 예상한 것과 다릅니다.

이것은 내가 사용하는 코드입니다:

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

결과는 다음과 같습니다.

잘못된 색상의 배경 테이블

누구든지 문제를 해결하고 더 좋아 보이도록 도와줄 수 있나요?

답변1

단순한 tabular환경에서는 이러한 색상의 테이블을 만드는 것이 너무 간단하지 않습니다. 기존 Q&A 관련 내용을 참고하여여러 행 셀의 배경색그리고색상이 지정된 여러 행 셀의 규칙다음을 수행할 수 있습니다.

명령 에는 음수를 사용 \multirow하고 텍스트를 가장 낮은 셀에 배치하십시오. 이렇게 하면 다음 행에 있는 셀의 배경색이 텍스트를 덮지 않습니다.

패키지를 사용하여 hhline부분 규칙을 그리지만 원하는 결과를 얻으려면 색상을 여러 번 변경해야 합니다.

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

여기에 이미지 설명을 입력하세요

다음을 사용하면 상황을 더 쉽게 달성할 수 있습니다.tabularray아니면 그nicematrix패키지. 이 사이트를 둘러보며 예제를 찾거나 위에 링크된 매뉴얼을 살펴보세요.

답변2

정보를 위해. 다음은 {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}

위 코드의 출력

관련 정보