MWE

MWE

의 규칙을 사용하는 테이블이 있습니다 booktabs. 그러나 수직 공간 제약 subcaption이 있어서 subtable. 또한 수평 공간 제약이 있으므로 그룹의 열은 최소화되어야 합니다.

첫 번째 접근 방식으로 그룹화를 위해 및 대괄호를 사용합니다 bigdelim.

MWE

가능한 MWE는 다음과 같습니다.

\documentclass{article}

\usepackage{booktabs, bigdelim, rotating}

\begin{document}
\begin{table}[htbp]
\begin{tabular}{llcc}
\toprule
& header1 & header 2 & header 3 \\
\cmidrule{2-4}
\ldelim\{{4}{4mm}[\parbox{4mm}{\rotatebox[origin=c]{90}{group1}}] & 1 & a & g \\
& 2 & b & h \\
& 3 & c & i \\
& 3 & c & i \\
\ldelim\{{6}{4mm}[\parbox{4mm}{\rotatebox[origin=c]{90}{group2}}] & 4 & d & j \\
& 5 & e & k \\
& 6 & f & l \\
& 7 & g & m \\
& 8 & h & n \\
& 9 & i & o \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

테이블 행 그룹화

그러나 나는 "그룹" 열이 수평선에 의해 포착되는 것을 원하지 않습니다. 그것은 미학적이라고 생각하지 않습니다. 나는 이미 길이를 줄이기 위해 cmidrule명령을 사용했습니다. booktabs그러나 (당연히) 그런 것은 없습니다 \toprule.\bottomrule

질문

  1. "그룹" 열에 표시 booktabs하지 않고 \toprule표시 하는 솔루션입니까 ?\bottomrule\ctoprule(예를 들어 에 대한 내 자신의 명령을 작성하는 것만 생각할 수 있지만 에 \cmidrule대한 모든 규칙 \toprule(예: 두께 및 공백)이 적용됩니다.)

  2. 패키지를 고수하여 그룹화를 달성하는 더 나은 솔루션이 있습니까 booktabs?

답변1

왜 더 두꺼운 것을 사용하지 않습니까 cmidrule? 제가 보기에는 간격이 거의 같고 조정이 가능합니다. 또한 가장 오른쪽 측면 베어링을 제거하고 cmidrules의 왼쪽 측면을 다듬는 것이 좋습니다. 그룹 사이에 작은 공간을 광고하는 것으로도 0.75ex충분했습니다.

그러나,에 따르면책꽂이매뉴얼 섹션 5,책꽂이함께긴 테이블모든 유형의 규칙을 트리밍합니다. 관리자는 사용을 제안합니다긴 테이블트리밍이 필요한 경우 표 형식의 경우 toprulebottomrule. 아래 예제에서 이를 구현했습니다. 첫 번째 열의 고정 너비를 설정하지 않거나 .aux 파일을 읽거나 첫 번째 열을 측정하는 코드를 구현하는 기술이 없으면 트리밍 요소는 약간의 추측입니다. 마지막 버전에서는정렬정렬과 너비를 지정할 수 있는 새로운 W- 및 -열이 있습니다. w저는 4mm 컬럼을 사용했습니다 w. 그러면 트리밍 계수는 다음과 같아야 합니다 4mm+2\tabcolseps+0.75ex(표준 트리밍 계수는 매뉴얼 4페이지 참조).

긴 테이블

어제부터 코드를 개선했습니다.

  1. 두 개의 오류 메시지를 없애기 위해 \ldelimto 의 두 번째 매개변수를 변경했습니다 . 아직 메시지가 남아있지만 일단은 남겨둡니다.{*}Overfull hbox with 10.[...]ptUnderfull vbox...
  2. 고정된 포인트 수 대신 \tabcolsep에 을(를) 변경했습니다 .0.5em
  3. 나는 왼쪽 열을 로 늘렸고 결과적으로 및 5 mm에 대한 수정 계수를 늘렸습니다 . 이것은 표 형식에 조금 더 많은 공기를 제공합니다.toprulebottomrule
  4. 올바른 트리밍 계수cmidrule . \tabcolsep, 아니 어야 합니다 0.75ex. 원하는 경우 줄이 텍스트와 완전히 일치하지 않도록 1pt를 뺄 수 있습니다.

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

\documentclass{article}

\usepackage{booktabs, bigdelim, rotating, longtable, array}
\setlength{\tabcolsep}{0.5em}   % As recommended by James Felici ‘The Complete Manual of Typography’
\begin{document}

%\begin{table}[htbp]
\begin{longtable}[l]{w{l}{5mm}lcc@{}}
\toprule(l{\dimexpr(5mm+3\tabcolsep)})
& header1 & header 2 & header 3
\endfirsthead
\cmidrule(l{\tabcolsep}){2-4}
\ldelim\{{4}{*}[\parbox{4mm}{\rotatebox[origin=c]{90}{group1}}] & 1 & a & g \\
& 2 & b & h \\
& 3 & c & i \\
& 3 & c & i \\\addlinespace[0.75ex]
\ldelim\{{6}{*}[\parbox{4mm}{\rotatebox[origin=c]{90}{group2}}] & 4 & d & j \\
& 5 & e & k \\
& 6 & f & l \\
& 7 & g & m \\
& 8 & h & n \\
& 9 & i & o \\
\bottomrule(l{\dimexpr(5mm+3\tabcolsep)})
\end{longtable}
%\end{table}

\end{document}

테이블 형식 및 수정된 cmidrule

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

\documentclass{article}

\usepackage{booktabs, bigdelim, rotating}

\begin{document}
\begin{table}[htbp]
\begin{tabular}{llcc@{}}
\cmidrule[\heavyrulewidth](l){2-4}
& header1 & header 2 & header 3 \\
\cmidrule(l){2-4}
\ldelim\{{4}{4mm}[\parbox{4mm}{\rotatebox[origin=c]{90}{group1}}] & 1 & a & g \\
& 2 & b & h \\
& 3 & c & i \\
& 3 & c & i \\\addlinespace[0.75ex]
\ldelim\{{6}{4mm}[\parbox{4mm}{\rotatebox[origin=c]{90}{group2}}] & 4 & d & j \\
& 5 & e & k \\
& 6 & f & l \\
& 7 & g & m \\
& 8 & h & n \\
& 9 & i & o \\
\cmidrule[\heavyrulewidth](l){2-4}
\end{tabular}
\end{table}

\end{document}

답변2

다음은 두 가지 솔루션입니다. 하나는 및 \cmidrule을 모방하는 맞춤형 s를 기반으로 하고 , 다른 하나는 더 간단한 sy,tax 및 단 3개의 열을 사용하여 기반으로 합니다. 불행히도 후자 패키지는 와 호환되지 않으므로 더 두꺼운 규칙과 위쪽과 아래쪽의 올바른 간격을 얻기 위해 노력해야 했습니다 .\toprule\bottomruleblkarraybooktabs\BAhhline

\documentclass{article}

\usepackage{booktabs, bigdelim, rotating}%{
\newcommand{\mytoprule}{\noalign{\vskip -\aboverulesep}\cmidrule[\heavyrulewidth]{2-4}}
\newcommand{\mybottomrule}{\cmidrule[\heavyrulewidth]{2-4}\noalign{\vskip -\belowrulesep}}
\usepackage{blkarray, hhline}

\begin{document}

\begin{table}[htbp]
\centering
\begin{tabular}{llcc}
\mytoprule
& header1 & header 2 & header 3 \\
\cmidrule{2-4}
\ldelim\{{4}{4mm}[\parbox{4mm}{\rotatebox[origin=c]{90}{group1}}] & 1 & a & g \\
& 2 & b & h \\
& 3 & c & i \\
& 3 & c & i \\
\addlinespace[0.5ex]
\ldelim\{{6}{4mm}[\parbox{4mm}{\rotatebox[origin=c]{90}{group2}}] & 4 & d & j \\
& 5 & e & k \\
& 6 & f & l \\
& 7 & g & m \\
& 8 & h & n \\
& 9 & i & o \\
\mybottomrule
\end{tabular}
\end{table}

\begin{table}[htbp]
\centering
\doublerulesep =0.05pt
\begin{blockarray}{lcc}
\hhline{===}
\BAnoalign{\vskip -5.3ex}
 header1 & header 2 & header 3 \\
 \BAhline
\begin{block}{\Left{\rotatebox[origin=c]{90}{group1}\,}{\{\,}lcc}
 1 & a & g \\
 2 & b & h \\
 3 & c & i \\
 3 & c & i \\
\end{block}
\begin{block}{\Left{\rotatebox[origin=c]{90}{group2}\,}{\{\,}lcc}%
 4 & d & j \\
 5 & e & k \\
 6 & f & l \\
 7 & g & m \\
 8 & h & n \\
 9 & i & o \\%\
\end{block}
\BAnoalign{\vskip -5.3ex}
\hhline{===}
\end{blockarray}
\end{table}

\end{document}

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

관련 정보