![使用 longtable 时停止表格图例超出页面末尾](https://linux22.com/image/383105/%E4%BD%BF%E7%94%A8%20longtable%20%E6%97%B6%E5%81%9C%E6%AD%A2%E8%A1%A8%E6%A0%BC%E5%9B%BE%E4%BE%8B%E8%B6%85%E5%87%BA%E9%A1%B5%E9%9D%A2%E6%9C%AB%E5%B0%BE.png)
我的表格格式为顶部有一个标题,底部有一个有时很长的图例。
当使用长表时,由于表格的任何位置都可以有分页符,因此表格的末尾可能会出现在页面的底部,从而导致图例完全超出页面。
有人知道如何解决这个问题吗?目前我唯一的解决方法就是强制表格从一页的某个点开始,以便图例能够正确地显示在显示的位置 - 我宁愿使用可以自动完成此操作的解决方案。
请参阅 MWE 和屏幕截图。
谢谢。
\documentclass[12pt]{memoir}
\usepackage{lipsum}
\usepackage{longtable}
\begin{document}
\lipsum[1-2] %% chosen to force the legend to run off the page
\begin{center}
\begin{longtable}{|c|c|c|c|}
\caption{A simple longtable example}\\ %% TABLE TITLE
\hline
\textbf{First entry} & \textbf{Second entry} & \textbf{Third entry} & \textbf{Fourth entry} \\
\hline
\endfirsthead
\multicolumn{4}{c}%
{\tablename\ \thetable\ -- \textit{Continued from previous page}} \\
\hline
\textbf{First entry} & \textbf{Second entry} & \textbf{Third entry} & \textbf{Fourth entry} \\
\hline
\endhead
\hline \multicolumn{4}{r}{\textit{Continued on next page}} \\
\endfoot
\hline
\caption*{\lipsum[1]} %% TABLE LEGEND
\endlastfoot
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
\end{longtable}
\end{center}
\end{document}
答案1
我认为大脚离开页面应该算是一个错误,但是如果你把它放在桌子主体中并且有一个空脚,效果会更好。答案是應該是您应该用于\\*
最后几行(取决于您希望始终与最终图例一起延续的最小行数)。不幸的是,虽然您有一个,\hline
但 longtablehline
始终允许分页,因此在这里我使用了不允许分页的内部版本。
不相关但从来没有把长表in a
中心environment (or
对齐左/
对齐右对齐)所以我删除了它。
\documentclass[12pt]{memoir}
\usepackage{lipsum}
\usepackage{longtable}
\begin{document}
\lipsum[1-2] %% chosen to force the legend to run off the page
\begin{longtable}{|c|c|c|c|}
\caption{A simple longtable example}\\ %% TABLE TITLE
\hline
\textbf{First entry} & \textbf{Second entry} & \textbf{Third entry} & \textbf{Fourth entry} \\
\hline
\endfirsthead
\multicolumn{4}{c}%
{\tablename\ \thetable\ -- \textit{Continued from previous page}} \\
\hline
\textbf{First entry} & \textbf{Second entry} & \textbf{Third entry} & \textbf{Fourth entry} \\
\hline
\endhead
\hline \multicolumn{4}{r}{\textit{Continued on next page}} \\
\endfoot
\endlastfoot
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\* 1 & 2 & 3 & 4 \\*
%\hline
\nopagebreak
\multispan{4}\unskip\leaders\hrule height\arrayrulewidth\hfill\cr % no break \hline
\nopagebreak
\caption*{\lipsum[1]} %% TABLE LEGEND
\end{longtable}
\end{document}