这个问题源于仅当发生分页符时,在可选分页符处添加文本和David Carlisle 的精彩回答。
问题是,当有(可选)分页符时,如何在表格之间放置文本,例如
[ Table 1 ]
Continued on next page
---- page break ----
Continued from previous page
[ Table 2 ]
大卫的答案是使用长桌。我的问题是,如果有三个或更多表格,当它们之间有分页符时,如何在每个表格之间插入自定义文本。例如:
[ Table 1 ]
The result of Table 1, XYZ, is carried over to the next page.
---- page break ----
The result of Table 1 being: XYZ (for more details see the previous page)
[ Table 2 ]
The conclusion of Table 2, XYZ, is used on the next page.
---- page break ----
The conclusion of Table 2, being: XYZ, is calculated on the previous page.
[ Table 3 ]
的问题在于longtable
可选文本必须在表格之间相同(即不能在表格之间自定义)。多个longtable
环境会重叠(即longtable
表格 1 + 2 和表格 2 + 3)。
是否有一种解决方案可以在跨页表格之间添加“自定义”可选文本?
我希望表格的解决方案可以扩展到 parboxes。
谢谢阅读。
答案1
也许是这样,使用\label
所以需要几次迭代才能稳定下来,而且如果在下一页时没有空间容纳表格下方的“下页继续”字样,则此版本不会做出太友好的反应,然后强制分页。可能可以修复,但这将帮助您入门
\documentclass{article}
\textheight.5\textheight
\makeatletter
\newcount\bt@count
\def\breaktext#1#2{%
\par
\nobreak
\global\advance\bt@count\@ne
\expandafter\label\expandafter{\the\bt@count bt@count}%
\edef\@tempa{\csname r@\the\bt@count bt@count\endcsname}%
\global\advance\bt@count\@ne
\edef\@tempb{\csname r@\the\bt@count bt@count\endcsname}%
\expandafter\ifx\expandafter\relax\@tempa
\typeout{relax}%
\penalty\z@
\else
\typeout{[\@tempa][\@tempb]}%
\ifx\@tempa\@tempb
\typeout{equal}%
\penalty\z@
\else
\typeout{page break}%
#1\par\break#2\par\nobreak
\fi
\fi
\expandafter\label\expandafter{\the\bt@count bt@count}%
\nobreak
}
\begin{document}
\fbox{\parbox[c][4.5cm][c]{.25\textwidth}{ONE}}
\breaktext{table one continues\ldots}{continued from before}
\fbox{\parbox[c][4cm][c]{.25\textwidth}{TWO}}
\breaktext{table two continues\ldots}{continued from before}
\fbox{\parbox[c][6cm][c]{.25\textwidth}{THREE}}
\breaktext{table three continues\ldots}{continued from before}
\fbox{\parbox[c][1cm][c]{.25\textwidth}{FOUR}}
\breaktext{table four continues\ldots}{continued from before}
\fbox{\parbox[c][2cm][c]{.25\textwidth}{FIVE}}
\end{document}