매우 긴 다중 열 항목을 사용할 때 페이지가 깨지는 현상이 발생합니다.

매우 긴 다중 열 항목을 사용할 때 페이지가 깨지는 현상이 발생합니다.

나는 s ltablex와 함께 사용하고 있습니다 \multicolumn. 내 문제는 단일 항목 내부에 많은 텍스트를 삽입해야 한다는 것입니다 \multicolumn. 그러면 자동으로 두 개의 다른 페이지에서 테이블을 나눌 때 첫 번째 페이지 끝에 많은 공백이 남아 있습니다. \multicolumn행별로 나누는 대신 아래쪽 여백에 도달하면 항목을 자동으로 나누는 단서를 찾고 싶습니다 . 예는 다음과 같습니다.

\begin{tabularx}{\linewidth}{| l | X | X | X | X | X | X | X |}
blabla & more blabla & \multicolumn{3}{c|}{merging cells} & \multicolumn{3}{c|}{more merging} \\
\multicolumn{8}{|p{\textwidth-2\tabcolsep-2\fboxrule}|}{a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, } \\
\hline
\multicolumn{8}{|p{\textwidth-2\tabcolsep-2\fboxrule}|}{a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, } \\
\hline
\multicolumn{8}{|p{\textwidth-2\tabcolsep-2\fboxrule}|}{a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, } \\
\hline
\multicolumn{8}{|p{\textwidth-2\tabcolsep-2\fboxrule}|}{a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, } \\
\hline
...
\multicolumn{8}{|p{\textwidth-2\tabcolsep-2\fboxrule}|}{a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, } \\
\hline
\end{tabularx}

답변1

여기에 있을 필요가 전혀 없습니다 longtable/ltablex(tabularx X 열을 사용할 필요도 없습니다.). tabularxtex를 사용하면 테이블을 재설정하고 최적의 열 너비를 결정하는 데 많은 노력이 필요하지만 스패닝 셀이 가득 찼다는 것을 미리 알고 있습니다. 너비와 개별 셀은 그 8분의 1입니다(또는 최소한 선폭에서 첫 번째 열의 가장 큰 항목을 뺀 7분의 1). 그래서 당신은 TeX에게 그것을 알려주고 그것을 해결하는 수고를 덜 수 있습니다. 셀 너비를 수정하면 더 이상 정렬되므로 동일한 테이블에 있을 필요가 없으므로 확장 항목을 일반 텍스트로 바꿀 수 있습니다. 수직 규칙이 정말로 필요한 경우 mdframed깨지기 쉬운 프레임을 사용하는 데 사용할 수 있습니다.

메모

\textwidth-2\tabcolsep-2\fboxrule

규칙 너비가 \arrayrulewidth다르기 때문에 올바른 계산이 아닙니다 \fboxrule(물론 동일한 값을 가질 수 있음).

그래서 다음과 같습니다.

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

\documentclass{article}

\addtolength\textheight{-30\baselineskip}
\addtolength\paperheight{-30\baselineskip}
\pdfpageheight\paperheight
\newenvironment{trow}
{\par
\begin{tabular}{|*8{p{\dimexpr(((\textwidth-\arrayrulewidth)/8)-2\tabcolsep-\arrayrulewidth)\relax}|}}
\hline}
{\\\hline\end{tabular}%
\par}
\begin{document}
\setlength\parindent{0pt}

\def\x{a very long text, a very long text, a very long text, a very long
text, a very long text, a very long text, a very long text, a very
long text, a very long text, a very long text, a very long text, a
very long text, a very long text, a very long text, a very long text,
a very long text, a very long text, a very long text, a very long
text, a very long text, a very long text, }

\x
\begin{trow}
red&yellow&blue&green&red&yellow&blue&green
\end{trow}
\begin{trow}
1&2&3&4&5&6&7&8
\end{trow}

\x
\begin{trow}
red&yellow&blue&green&red&yellow&blue&green
\end{trow}
\begin{trow}
1&2&3&4&5&6&7&8
\end{trow}

\x
\begin{trow}
red&yellow&blue&green&red&yellow&blue&green
\end{trow}
\begin{trow}
1&2&3&4&5&6&7&8
\end{trow}


\end{document}

관련 정보