사진과 같은 라텍스 테이블을 만들어보려고 합니다. 기본적으로 헤더 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
)을 사용합니다. 따라서\cmidrule
with 를 짧게 사용하는 것이 쉽습니다\cmidrule(rl)
(더미 컬럼이 필요하지 않음).내용을 병합 셀의 수학적 중심에 배치하는
\Block
명령 입니다 .nicematrix
에서처럼 수동으로 조정할 필요가 없습니다\multirow
.이 명령은
\rowstyle
행의 모든 셀에 서식 지정 명령을 적용합니다.에서는
nicematrix
색상 패널이 모든 규칙 앞에 그려집니다(PDF 뷰어에서 출력이 더 좋습니다. Adobe Reader와 같은 일부 PDF 뷰어에서는 일부 확대/축소 수준에서 규칙이 사라지지 않는 것 같습니다).