表に空白行を描くにはどうすればいいですか?

表に空白行を描くにはどうすればいいですか?

次の表を再作成しようとしています:

ここに画像の説明を入力してください

しかし、最初の 2 つの列に問題があります。垂直線を上まで伸ばしたくないのです。

ここに画像の説明を入力してください

垂直線の延長を制限するにはどうすればよいですか?

私が使用しているコードは次のとおりです。

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

答え1

\multicolumn{2}{l|}{}即時の書式設定の問題を修正するには、いくつかのディレクティブを使用することをお勧めします。下の最初の表を参照してください。

さらに、縦線をすべて取り除き (縦線がないと気にならないので、心配はいりません)、横線を少なくして間隔を空けて配置することで、表をよりコンパクトかつオープンな外観にすることを提案したいと思います。表のヘッダーに繰り返し情報を配置するのも良いアイデアです。下の 2 番目の表を参照してください。このアプローチでは縦線が最初から存在しないため、その\multicolumn{2}{l|}{}場しのぎの策を講じる必要もありません。

最後に一言:手元のテーブルを\resizebox大ハンマーで叩く理由が全く見当たりません。

ここに画像の説明を入力してください

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

答え2

LaTeX の環境は TeX プリミティブtabularに基づいています\halign。各テーブル項目は、テーブル宣言からの左のマテリアルから作成されます ( を宣言したため、最初の列に垂直線があります|c)。

次に、テーブル項目データが印刷され、次にテーブル宣言からの右側の資料が印刷されます ( を宣言したため、各列に垂直線がありますc|)。左 + 右の資料は、TeX プリミティブによって省略できます\omit。最初の列に書き込むと\omit、左と右の垂直線が省略され、別の列で を使用すると\omit、右の垂直線が省略されます。

不要な垂直線のないコードの部分は\omit、次のように TeX プリミティブによって管理できます。

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

答え3

パッケージには、この効果を作成するために使用するnicematrix組み込み機能があります。パッケージには、行または列を太字にする機能もあります。cornershvlines文書を2回コンパイルする必要があるnicematrixセルのサイズに影響する変更を行うたびに使用します。

ここに画像の説明を入力してください

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

関連情報