ltablex와 북탭

ltablex와 북탭

한 페이지보다 큰 테이블이 필요하며 크기가 고정되어 있어야 합니다. 모양을 개선하기 위해 북탭을 사용합니다. 다만, 마지막 페이지를 제외하고 모든 페이지에서 표 밑부분이 좋지는 않습니다. 여기에 이미지 설명을 입력하세요 여기 내 MWE가 있습니다

\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage{ltablex}
\usepackage{blindtext}
\begin{document}
\begin{tabularx}{\linewidth}{XX}
left & right\\\toprule
\endhead
\bottomrule
\endfoot
\blindtext & \blindtext\\*\midrule
\blindtext & \blindtext\\*\midrule
\blindtext & \blindtext\\
\end{tabularx}
\end{document}

행이 페이지의 마지막 행인지 감지할 가능성이 있습니까? 그러면 이중선을 피할 수 있을 것 같아요. 다음 의사 코드와 같습니다.

is row last row of the page than \bottomrule else \midrule

\bottomrule각 페이지 끝에 a만 넣고 이중선은 넣지 않고 싶습니다 .

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

답변1

해결책 가)질문을 따르고 있는지 잘 모르겠지만 \bottomrule전혀 필요하지 않습니다. 너비만 설정할 수 있는 간단한 규칙입니다. 내 예에서는 이를 제거하고 테이블 맨 끝에 하나의 추가 규칙을 추가합니다.

%! *latex mal-ltablex-a.tex
\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage{ltablex}
\usepackage{blindtext}

\begin{document}
\begin{tabularx}{\linewidth}{XX}
left & right\\\toprule
\endhead
%\bottomrule
\endfoot
\blindtext & \blindtext\\*\midrule 
\blindtext & \blindtext\\*\midrule
\blindtext & \blindtext\\*\midrule
\end{tabularx}
\end{document}

1개

편집, 솔루션 B)꼭 필요한 경우를 대비하여 이 트릭을 패치로 사용하고 있습니다. 나는 \label각 행의 끝에 페이지 번호( )에 대한 정보를 저장하고 있으며 다음 TeX 실행에서 조판할지 \midrule아니면 \bottomrule(실제 행과 다음 행을 비교하고 있습니다. 미리 보는 상황입니다)

\bottomrule테이블 맨 끝 부분에 표시하고 싶은 경우 \mycounting마지막 줄 앞에 댓글을 달아주세요.

%! *latex mal-ltablex-b.tex
\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage{ltablex}
\usepackage{blindtext}
\usepackage{refcount}

\let\oldmidrule=\midrule
\newcount\malic 
\global\malic=0
\newcount\maltempa \maltempa=0
\newcount\maltempb \maltempb=0

\def\midrule{%
\mycounting
\ifnum\maltempa=\maltempb
  \\*\oldmidrule
\else
  \\*\bottomrule[6pt]
\fi
}%End of \midrule...

\def\mycounting{%
\global\advance\malic by 2%
\maltempb=\getpagerefnumber{mycounter-\the\malic}%
\global\advance\malic by -1%
\maltempa=\getpagerefnumber{mycounter-\the\malic}%
\typeout{\the\maltempa, \the\maltempb}
\label{mycounter-\the\malic}%
}% End of \mycounting...


\begin{document}
\begin{tabularx}{\linewidth}{XX}
left & right\\\toprule
\endhead
%\bottomrule
\endfoot
\blindtext & \blindtext \midrule 
\blindtext & \blindtext \midrule
\blindtext & \blindtext \midrule
\blindtext & \blindtext \midrule 
\blindtext & \blindtext \midrule
\blindtext & \blindtext \midrule
\blindtext & \blindtext \midrule 
%\blindtext & \blindtext \midrule
\end{tabularx}

\mycounting % Comment out this line in case you would like to have \bottomrule at the very end of the table...
\end{document}

므웨 2

답변2

\toprule귀하의 예에서는 인쇄상으로 말하면 "무거운" 규칙( 및 에서 생성됨 \bottomrule)과 "가벼운" 규칙( 에서 생성됨 \midrule) 을 모두 갖는 것이 거의 의미가 없는 것 같습니다 . 따라서 나는 하나의 규칙 너비(예: )만 사용하는 것이 좋습니다 \heavyrulewidth.모든 규칙. 이러한 설정을 구현하는 방법은 다음과 같습니다.

\documentclass{scrartcl}
\usepackage{booktabs,ltablex,blindtext}
\setlength\lightrulewidth{\heavyrulewidth}
\begin{document}
\begin{tabularx}{\linewidth}{XX}
left & right\\ \toprule
\endhead
\bottomrule % use \bottomrule only on final page
\endlastfoot
\blindtext & \blindtext\\*\midrule
\blindtext & \blindtext\\*\midrule
\blindtext & \blindtext\\
\end{tabularx}
\end{document}

반대로, 모든 규칙의 두께가 가 되도록 하려면 \lightrulewidth다음 명령을 실행합니다.

\setlength\heavyrulewidth{\lightrulewidth}

답변3

\bottomrule이는 가짜 ( \raisebox내용)를 수직으로 위로 이동하여 잔여물을 오버레이함으로써 문제를 해결하므로 \midrule이중 규칙이 나타나는 것을 방지합니다. 그러나 부작용이 있습니다. 이 조작으로 인해 수직 공간의 추가 라인이 차지하므로 페이지당 작업할 행이 하나 줄어듭니다. 이를 보려면 my를 주석 처리 \raisebox하고 원본의 주석 처리를 제거하면 \bottomrule"X Y" 행이 2페이지 상단에서 1페이지 하단으로 이동하는 것을 볼 수 있습니다.

\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage{ltablex}
\usepackage{blindtext}
\begin{document}
\begin{tabularx}{\linewidth}{XX}
left & right\\\toprule
\endhead
\raisebox{9pt}{\smash{\makebox[.972\textwidth]{\rule{\textwidth}{1pt}}}}%
%\bottomrule
\endfoot
\blindtext & \blindtext\\*\midrule
\blindtext & \blindtext\\*\midrule
X & Y\\*\midrule
\blindtext & \blindtext\\*\midrule
\blindtext & \blindtext\\*\midrule
\blindtext & \blindtext\\*\midrule
\blindtext & \blindtext\\
\end{tabularx}
\end{document}

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

답변4

실제 해결책은 아닙니다.

\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage{ltablex,tabu}
\usepackage{blindtext}
\begin{document}
\begin{tabularx}{\linewidth}{XX}
left & right\\\midrule[\heavyrulewidth]
\endhead
\multicolumn{2}{@{}c@{}}{continues next page} \\*\bottomrule
\endfoot
\bottomrule
\endlastfoot
\blindtext & \blindtext\\\midrule
\blindtext & \blindtext\\\midrule
\blindtext & \blindtext\\
\end{tabularx}
\end{document}

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

관련 정보