Wie kann ich in Tabellen Leerzeilen zeichnen?

Wie kann ich in Tabellen Leerzeilen zeichnen?

Ich versuche die folgende Tabelle neu zu erstellen:

Bildbeschreibung hier eingeben

Bei den ersten beiden Spalten habe ich allerdings ein Problem, da ich nicht möchte, dass die senkrechten Linien ganz nach oben gehen.

Bildbeschreibung hier eingeben

Wie kann ich die Ausdehnung der vertikalen Linien begrenzen?

Hier ist der Code, den ich verwende.

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

Antwort1

\multicolumn{2}{l|}{}Ich schlage vor, dass Sie zur Behebung des unmittelbaren Formatierungsproblems einige Anweisungen verwenden , siehe die erste Tabelle unten.

Ich möchte außerdem vorschlagen, dass Sie einer Tabelle ein gleichzeitig kompakteres und offeneres Aussehen verleihen, indem Sie alle vertikalen Linien entfernen – glauben Sie mir, man wird sie nicht vermissen – und weniger, dafür aber gut verteilte horizontale Linien verwenden. Es ist auch eine gute Idee, sich wiederholende Informationen in die Kopfzeile der Tabelle zu setzen; siehe die zweite Tabelle unten. Beachten Sie, dass bei diesem Ansatz von vornherein keine vertikalen Linien vorhanden sind, sodass der \multicolumn{2}{l|}{}Kludge-Ansatz nicht angewendet werden muss.

Eine letzte Bemerkung: Ich sehe keinerlei Grund, den vorliegenden Tisch mit dem \resizeboxVorschlaghammer zu bearbeiten.

Bildbeschreibung hier eingeben

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

Antwort2

Die tabularUmgebung in LaTeX basiert auf dem \halignTeX-Grundelement. Jedes Tabellenelement wird aus einem linken Element der Tabellendeklaration erstellt (in der ersten Spalte befindet sich ein vertikaler Strich, da Sie dies deklariert haben |c).

Anschließend werden die Daten des Tabellenelements gedruckt und anschließend das rechte Material aus der Tabellendeklaration (in jeder Spalte gibt es eine vertikale Linie, da Sie deklariert haben ). Das linke+rechte Material kann durch das TeX-Primitiv c|weggelassen werden . Wenn Sie in die erste Spalte schreiben, wird die linke und rechte vertikale Linie weggelassen, und wenn Sie in einer anderen Spalte verwenden, wird die rechte vertikale Linie weggelassen.\omit\omit\omit

Der Teil Ihres Codes ohne unerwünschte vertikale Linien kann mit dem \omitTeX-Grundelement wie folgt verwaltet werden:

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

Antwort3

Das Paket nicematrixverfügt über eine integrierte Funktion, cornersmit der Sie diesen Effekt erzielen können hvlines. Das Paket verfügt auch über Funktionen, um Zeilen oder Spalten fett darzustellen. Beachten Sie, dassSie müssen das Dokument zweimal kompilierenbei der Verwendung nicematrixjedes Mal, wenn Sie eine Änderung vornehmen, die sich auf die Größe der Zellen auswirkt.

Bildbeschreibung hier eingeben

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

verwandte Informationen