![尝试制作带有彩色背景的表格](https://linux22.com/image/472769/%E5%B0%9D%E8%AF%95%E5%88%B6%E4%BD%9C%E5%B8%A6%E6%9C%89%E5%BD%A9%E8%89%B2%E8%83%8C%E6%99%AF%E7%9A%84%E8%A1%A8%E6%A0%BC.png)
我尝试改变背景颜色和 \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
环境中,这种彩色表格的构建并不太简单。参考现有的关于多行单元格的背景颜色和彩色多行单元格中的规则您可以执行以下操作:
使用负整数作为\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}
仅供参考。以下是使用创建该表的一种方法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}