Estoy buscando agregar bordes a algunas celdas de una tabla, de modo que los bordes rodeen el contenido y haya un espacio entre cada celda. La mejor imagen que pude encontrar que muestra lo que quiero lograr es esta:
Esto es posible en HTML mediante la cellspacing
configuración de tablas. ¿Cómo puedo lograr lo mismo en LaTeX? Solo me gustaría que algunas de las celdas de la tabla tuvieran este borde interno, no todas.
Lo más cerca que he estado es usando fbox
, pero no pude lograr que se extendieran hasta los bordes de las celdas de la tabla.
Respuesta1
Para tablas simples una solución fácil es el hhline
paquete, pero creo queno esuna buena solución para tablas complejas con celdas \multiwrow
y \multicolumn
, como se muestra en su pregunta.
En este MWE se muestran ambos problemas:
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{hhline}
\usepackage{multirow}
\begin{document}
\arrayrulecolor{black}
\doublerulesepcolor{gray!40}
\begin{tabular}{||>{\columncolor[gray]{0.9}\bfseries}c||c||c||c||c||}
\hhline{|t:=:t:=:t:=:t:=:t:=:t|}
\rowcolor{red!30}
\multirow{2}{*}{alfa} & \bfseries beta & \multicolumn{2}{|c||}{\bfseries beta} & \bfseries alfa \\
\hhline{||~|:=::=::=::=:|}
& beta & alfa & beta & alfa \\
\hhline{|:=::=::=::=::=:|}
alfa & beta & alfa & beta & alfa \\
\hhline{|:=::=::=::=::=:|}
alfa & beta & alfa & beta & alfa \\
\hhline{|:=::=::=::=::=:|}
\rowcolor{green!30} gamma & delta & gamma & delta & gamma \\
\hhline{|b:=:b:=:b:=:b:=:b:=:b|}
\end{tabular}
\end{document}
Respuesta2
Aquí hay una solución con {NiceTabular}
of nicemtrix
.
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\newcommand{\B}
{
\Block
[
tikz = clip ,
tikz = { draw, line width=3pt } ,
tikz = { draw, color = gray!10, line width = 2.5pt}
]
}
\NiceMatrixOptions{cell-space-limits=5pt}
\begin{NiceTabular}{>{\bfseries}ccccc}
\CodeBefore
\arraycolor{lightgray}
\rectanglecolor{white}{3-2}{6-5}
\Body
\RowStyle[nb-rows=2]{\bfseries}
\B{2-1}{Question} & \B{1-2}{Women} && \B{1-2}{Men} \\
& \B{}{Yes} & \B{}{No} & \B{}{Yes} & \B{}{No} \\
\B{}{Question 1} & \B{}{42\%} & \B{}{58\%} & \B{}{61\%} & \B{}{39\%} \\
\B{}{Question 2} & \B{}{53\%} & \B{}{47\%} & \B{}{69\%} & \B{}{31\%} \\
\B{}{Question 3} & \B{}{26\%} & \B{}{74\%} & \B{}{51\%} & \B{}{49\%} \\
\RowStyle{\bfseries}
\B{}{Average} & \B{}{40\%} & \B{}{60\%} & \B{}{60\%} & \B{}{40\%}
\end{NiceTabular}
\end{document}
Necesitas varias compilaciones.