테이블에 빈 줄을 어떻게 그릴 수 있나요?

테이블에 빈 줄을 어떻게 그릴 수 있나요?

다음 테이블을 다시 만들려고 합니다.

여기에 이미지 설명을 입력하세요.

하지만 처음 두 열에 문제가 있습니다. 수직선이 끝까지 올라가는 것을 원하지 않습니다.

여기에 이미지 설명을 입력하세요.

수직선 확장을 어떻게 제한할 수 있나요?

내가 사용하는 코드는 다음과 같습니다.

\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|}{}즉각적인 형식 문제를 해결하려면 몇 가지 지시어를 사용하는 것이 좋습니다 . 아래 첫 번째 표를 참조하세요.

나는 또한 모든 수직적 규칙을 제거하고 더 적은 수를 사용하여 테이블에 더 컴팩트하면서도 더 개방적인 모습을 제공할 것을 제안하고 싶습니다. 간격, 수평 규칙. 테이블 헤더에 반복되는 정보를 배치하는 것도 좋은 생각입니다. 아래 두 번째 표를 참조하세요. 이 접근 방식에서는 시작할 수직선이 없기 때문에 \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 이 효과를 만드는 데 . 패키지에는 행이나 열을 굵은 글씨로 만드는 기능도 있습니다. 참고하세요문서를 두 번 컴파일해야 합니다.사용할 때 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}

관련 정보