¿Cómo puedo dibujar líneas en blanco en las tablas?

¿Cómo puedo dibujar líneas en blanco en las tablas?

Estoy intentando recrear la siguiente tabla:

Ingrese la descripción de la imagen aquí

Pero tengo problemas con las dos primeras columnas. No quiero que las líneas verticales lleguen hasta arriba.

Ingrese la descripción de la imagen aquí

¿Cómo puedo limitar la extensión de las líneas verticales?

Aquí está el código que estoy usando.

\begin{table}[H]
\def\arraystretch{1.3}
    \caption{Caption}
    \centering
    \resizebox{0.5\textwidth}{!}{
    \begin{tabular}{|c|c|c|c|c|c|c|c|}
\cline{3-8}
& & \multicolumn{6}{|c|}{Datos principales}\\
\cline{3-8}
& & \multicolumn{3}{|c|}{Datos 1} & \multicolumn{3}{|c|}{Datos 2}\\
\hline
\multirow{3}{*}{Primer grupo} & Primera prueba & 1 & 2 & 3 & 1 & 2 & 3 \\

\cline{2-8}
                              & Segunda prueba & 4 & 5 & 6 & 4 & 5 & 6\\
\cline{2-8}
                              & Tercera prueba & 4 & 5 & 6 & 4 & 5 & 6 \\
\hline
\multirow{3}{*}{Segundo grupo} & Primera prueba & 1 & 2 & 3 & 1 & 2 & 3 \\
\cline{2-8}
                              & Segunda prueba & 4 & 5 & 6 & 4 & 5 & 6\\
\cline{2-8}
                              & Tercera prueba & 4 & 5 & 6 & 4 & 5 & 6 \\
    \hline
    \end{tabular}
    }
    \label{tab:my_label}

\end{table}

Respuesta1

Le sugiero que utilice un par de \multicolumn{2}{l|}{}directivas para solucionar el problema de formato inmediato; consulte la primera tabla a continuación.

Además, me gustaría sugerirle que le dé a la mesa un aspecto más compacto y al mismo tiempo más abierto, deshaciéndose de todas las reglas verticales (créanme, no las pasarán por alto) y usando menos, pero bueno. reglas horizontales espaciadas. También es una buena idea colocar información repetida en el encabezado de la tabla; consulte la segunda tabla a continuación. Tenga en cuenta que debido a que, para empezar, no hay líneas verticales en este enfoque, tampoco es necesario aplicar la \multicolumn{2}{l|}{}chapuza.

Una observación final: no veo ninguna razón para atacar la mesa que tenemos entre manos con el \resizeboxmazo.

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage[spanish,es-tabla]{babel}
\usepackage{array,multirow}
\usepackage[skip=0.333\baselineskip]{caption} % optional
\usepackage{booktabs} % for well-spaced horizontal rules

\begin{document}

\begin{table}[ht]
\centering

%\def\arraystretch{1.3}
\setlength\extrarowheight{3pt}
\caption{Caption1}
\label{tab:my_label1}

\begin{tabular}{ | *{2}{l|} *{6}{c|} }
\cline{3-8}
\multicolumn{2}{c|}{} % empty double-wide cell, with "|" on the right
  & \multicolumn{6}{c|}{Datos principales}\\
\cline{3-8}
\multicolumn{2}{c|}{} % empty double-wide cell, with "|" on the right
  & \multicolumn{3}{c|}{Datos 1} 
  & \multicolumn{3}{c|}{Datos 2}\\
\hline
\multirow{3}{*}{Primer grupo}  
     & Primera prueba & 1 & 2 & 3 & 1 & 2 & 3 \\
\cline{2-8}
     & Segunda prueba & 4 & 5 & 6 & 4 & 5 & 6 \\
\cline{2-8}
     & Tercera prueba & 4 & 5 & 6 & 4 & 5 & 6 \\
\hline
\multirow{3}{*}{Segundo grupo} 
     & Primera prueba & 1 & 2 & 3 & 1 & 2 & 3 \\
\cline{2-8}
     & Segunda prueba & 4 & 5 & 6 & 4 & 5 & 6 \\
\cline{2-8}
     & Tercera prueba & 4 & 5 & 6 & 4 & 5 & 6 \\
\hline
\end{tabular} 

\bigskip\bigskip

\setlength\extrarowheight{0pt} % not needed for 2nd table
\caption{Caption2}
\label{tab:my_label2}

\begin{tabular}{@{} *{2}{l} *{6}{c} @{}}
\toprule
Grupo & Prueba & \multicolumn{6}{c@{}}{Datos principales}\\
\cmidrule(l){3-8}
& & \multicolumn{3}{c}{Datos 1} & \multicolumn{3}{c@{}}{Datos 2} \\
\midrule
Primer 
     & Primera & 1 & 2 & 3 & 1 & 2 & 3 \\
     & Segunda & 4 & 5 & 6 & 4 & 5 & 6 \\
     & Tercera & 4 & 5 & 6 & 4 & 5 & 6 \\
\addlinespace
Segundo
     & Primera & 1 & 2 & 3 & 1 & 2 & 3 \\
     & Segunda & 4 & 5 & 6 & 4 & 5 & 6 \\
     & Tercera & 4 & 5 & 6 & 4 & 5 & 6 \\
\bottomrule
\end{tabular} 
\end{table}

\end{document}

Respuesta2

El tabularentorno en LaTeX se basa en la \halignprimitiva TeX. Cada elemento de la tabla se crea a partir del material izquierdo de la declaración de la tabla (hay una regla vertical en la primera columna porque usted declaró |c).

Luego se imprimen los datos del elemento de la tabla y luego el material correcto de la declaración de la tabla (hay una regla vertical en cada columna, porque usted declaró c|). La primitiva TeX puede omitir el material izquierda+derecha \omit. Si escribe \omiten la primera columna, se omite la regla vertical izquierda y derecha, y si escribe \omiten otra columna, se omite la regla vertical derecha.

La parte de su código sin reglas verticales no deseadas se puede administrar mediante la \omitprimitiva TeX, así:

\omit & & \multicolumn{6}{|c|}{Datos principales}\\
\cline{3-8}
\omit & & \multicolumn{3}{|c|}{Datos 1} & \multicolumn{3}{|c|}{Datos 2}\\
\hline

Respuesta3

El paquete nicematrixtiene la función incorporada cornersque se utilizará para hvlinescrear este efecto. El paquete también tiene funciones para hacer filas o columnas en negrita. Tenga en cuenta quedebes compilar el documento dos vecesal usarlo nicematrixcada vez que realiza un cambio que afecta el tamaño de las celdas.

ingrese la descripción de la imagen aquí

\documentclass{article}

\usepackage{nicematrix}

\begin{document}

\begin{table}
\centering
\begin{NiceTabular}{>{\bfseries}cccccccc}[corners, hvlines]
\RowStyle[nb-rows=2]{\bfseries}
& & \Block{1-6}{Datos principales}\\
& & \Block{1-3}{Datos 1} &&& \Block{1-3}{Datos 2}\\
\Block{3-1}{Primer\\grupo} & Primera prueba & 1 & 2 & 3 & 1 & 2 & 3 \\
 & Segunda prueba & 4 & 5 & 6 & 4 & 5 & 6\\
 & Tercera prueba & 4 & 5 & 6 & 4 & 5 & 6 \\
\Block{3-1}{Segundo\\grupo} & Primera prueba & 1 & 2 & 3 & 1 & 2 & 3 \\
 & Segunda prueba & 4 & 5 & 6 & 4 & 5 & 6\\
 & Tercera prueba & 4 & 5 & 6 & 4 & 5 & 6
\end{NiceTabular}
\caption{Caption.}
\label{table:1}
\end{table}

\end{document}

información relacionada