我正在处理一张表格,需要在行组之间添加额外的空间。我目前的做法是,用 结束组内除最后一行之外的所有行\\*
(这可以防止在使用该行的行末出现分页符)。每组的最后一行都以 结尾,\\[\ExtraRowSpace]
其中\ExtraRowSpace
是某个长度(例如2cm
)。
这种方法的唯一问题是,在表格的每一页(最后一页除外)的末尾,最后一行数据和之间都有一个令人讨厌的间隙\bottomrule
。有什么方法可以有条件地在表格中的行组之间插入额外的空间,以便在分页符之前不会添加空间?
下面的文档对该问题进行了简单的演示:
\documentclass[12pt]{article}
\usepackage{longtable}
\usepackage{booktabs}
\newcommand{\ExtraRowSpace}{2cm}
\begin{document}
\begin{center}
\begin{longtable}{cccc}
\toprule
\textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} \\
\midrule
\endfirsthead
\toprule
\textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} \\
\midrule
\endhead
\bottomrule
\endfoot
\bottomrule
\endlastfoot
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d
\end{longtable}
\end{center}
\end{document}
答案1
可以使用软件包的功能修复此问题booktabs
。只需将每次使用的 替换\\[2cm]
为即可\\ \addlinespace[2cm]
。使用\addlinespace
命令可以booktabs
删除页面末尾的多余空间。以下是文档的修复版本:
\documentclass[12pt]{article}
\usepackage{longtable}
\usepackage{booktabs}
\newcommand{\ExtraRowSpace}{2cm}
\begin{document}
\begin{center}
\begin{longtable}{cccc}
\toprule
\textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} \\
\midrule
\endfirsthead
\toprule
\textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} \\
\midrule
\endhead
\bottomrule
\endfoot
\bottomrule
\endlastfoot
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d \\ \addlinespace[\ExtraRowSpace]
a & b & c & d \\* a & b & c & d \\* a & b & c & d \\* a & b & c & d
\end{longtable}
\end{center}
\end{document}