책갈피 스타일 테이블에 색상 상자, 회전된 텍스트 포함

책갈피 스타일 테이블에 색상 상자, 회전된 텍스트 포함

사진과 같은 라텍스 테이블을 만들어보려고 합니다. 기본적으로 헤더 1 아래에는 추가 정보가 포함된 회색 셀 하나인 회전된 텍스트 열 4개가 있어야 합니다. 저는 라텍스를 처음 접했고 이 테이블을 북탭 스타일로 만드는 방법을 모릅니다.여기에 이미지 설명을 입력하세요

\documentclass{article}
\newcommand*\turn{\rotatebox[origin=b]{90}}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{array, caption}
\usepackage{graphicx}
\usepackage{makecell}
\usepackage[table,xcdraw]{xcolor}


\begin{document}
 
\begin{table}[]
\centering
\begin{tabular}{@{}llllll@{}}
\toprule
& \multicolumn{4}{c}{Header 1} &     \\ 
\cmidrule(lr){2-5}
&\turn{Text1}      &\turn{Text2}     &\turn{Text3}     & \turn{Text4}     & \cellcolor{gray!25} \makecell[l]{Some line 1\\ Some line 1\\ Some line 1\\ Some line 1\\ Some line 1} \\
Header 3 &    &      &        &       &Header 3\\
\midrule

&        &       &       &       &    \\
&        &       &       &       &    \\
\bottomrule

\end{tabular}
\end{table}

\end{document}

답변1

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

이 (특이한) 테이블을 재현하는 MWE는 (질문에 표시된 대로) 다음과 같습니다.

\documentclass{article}
\usepackage[table,xcdraw]{xcolor}
\usepackage{rotating}
\usepackage{makecell, multirow, tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage[skip=1ex]{caption}

\begin{document}
    \begin{table}[htb]
    \centering
    \setlength\extrarowheight{2pt}
    \settowidth\rotheadsize{Text 4}
    \renewcommand\rotheadgape{}
\begin{tabularx}{0.6\linewidth}{ l llll c@{\,}X }
    \Xhline{1pt}
            & \multicolumn{4}{c}{Header 1} 
                                && \cellcolor{gray!25}   \\  
    \Xcline{2-5}{0.6pt}
                &   \rothead{Text 1}
                    &   \rothead{Text 2}
                        &   \rothead{Text 3}
                            &   \rothead{Text 4}
                                &&  \cellcolor{gray!25}%
                                    \multirow{-2.2}{=}{\noindent
                                    Some line 1 Some line 2
                                    Some line 3}        \\ 
Header 3    &   &   &   &   &&  Header 3                \\
    \Xhline{0.6pt}
A           &   &   &   &   &&  1                       \\
B           &   &   &   &   &&  2                       \\
    \Xhline{1pt}
\end{tabularx}
    \end{table}
\end{document}

부록:

\documentclass{article}
\usepackage[table,xcdraw]{xcolor}
\usepackage{rotating}
\usepackage{makecell, multirow, tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcommand\mrrc[1]{\multirow{-2.4}{*}{\rothead{#1}}} % <---
\usepackage[skip=1ex]{caption}

\begin{document}
    \begin{table}[htb]
    \centering
    \setlength\extrarowheight{2pt}
    \settowidth\rotheadsize{Text 4}
    \renewcommand\rotheadgape{}
\begin{tabularx}{0.6\linewidth}{ l llll c@{\,}L }
    \Xhline{1pt}
            & \multicolumn{4}{c}{Header 1} 
                            && \cellcolor{gray!25}  \\  
    \Xcline{2-5}{0.6pt}
            &   &   &   &   &&  \cellcolor{gray!25}                 % <---
                                \small\linespread{0.84}\selectfont  % <---
                                \multirow{-1.8}{=}{\noindent
                                    Some line 1 
                                    Some line 2
                                    Some line 3}    \\[1ex]
Header 3    &   \mrrc{Text 1}       % <--- rotated headers moved down
                &   \mrrc{Text 2}
                    &   \mrrc{Text 3}
                        &   \mrrc{Text 4}
                                   &&  Header 3     \\
    \Xhline{0.6pt}
A           &   &   &   &   &&  1                   \\
B           &   &   &   &   &&  2                   \\
    \Xhline{1pt}
\end{tabularx}
    \end{table}
\end{document}

당신이 갖고 싶은 것을 생산하길 바랍니다:

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

답변2

당신이 갖고 싶은 것이 그것인가요?

\documentclass{article}
\newcommand*\turn{\rotatebox[origin=b]{90}}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{array, caption}
\usepackage{graphicx}
\usepackage{makecell}
\usepackage[table,xcdraw]{xcolor}

\begin{document}

\begin{table}[]
\centering
\begin{tabular}{@{}llllll@{}}
\toprule
& \multicolumn{4}{c}{Header 1} & \\
\cmidrule(lr){2-5}
&\multirowcell{3.5}{\turn{Text1}} &\multirowcell{3.5}{\turn{Text2}} &\multirowcell{3.5}{\turn{Text3}} & \multirowcell{3.5}{\turn{Text4}} & \cellcolor{gray!25} \makecell{Some line 1\\ Some line 1\\ Some line 1\\ Some line 1\\ Some line 1} \\
\addlinespace
Header 3 & & & & &Header 3\\
\midrule

& & & & & \\
& & & & & \\
\bottomrule
\end{tabular}
\end{table}

\end{document} 

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

답변3

{NiceTabular}다음은 of 를 사용한 솔루션입니다 nicematrix.

\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}
\usepackage{booktabs}

\begin{document}
\begin{table}[htb]
\centering
\setlength\extrarowheight{2pt}
\begin{NiceTabular}{llllll}
\CodeBefore
  \rectanglecolor{gray!20}{1-6}{2-6}
\Body
  \toprule
   & \Block{1-4}{Header 1} &&&
   & \Block{2-1}{Some line 1\\ Some line 2 \\ Some line 3}  \\  
  \cmidrule(lr){2-5}
   \RowStyle{\rotate}
   & Text 1
   & Text 2
   & Text 3
   & Text 4 \\
  Header 3    &   &   &   &   & Header 3 \\
  \midrule
  A           &   &   &   &   &  1 \\
  B           &   &   &   &   &  2 \\
  \bottomrule
\end{NiceTabular}
\end{table}
\end{document}
  • 이 솔루션은 \booktabs( nicematrix와 호환 가능 booktabs)을 사용합니다. 따라서 \cmidrulewith 를 짧게 사용하는 것이 쉽습니다 \cmidrule(rl)(더미 컬럼이 필요하지 않음).

  • 내용을 병합 셀의 수학적 중심에 배치하는 \Block명령 입니다 . nicematrix에서처럼 수동으로 조정할 필요가 없습니다 \multirow.

  • 이 명령은 \rowstyle행의 모든 ​​셀에 서식 지정 명령을 적용합니다.

  • 에서는 nicematrix색상 패널이 모든 규칙 앞에 그려집니다(PDF 뷰어에서 출력이 더 좋습니다. Adobe Reader와 같은 일부 PDF 뷰어에서는 일부 확대/축소 수준에서 규칙이 사라지지 않는 것 같습니다).

위 코드의 출력

관련 정보