我想在行间添加一些空间,以提高我的 booktabs 表的可读性。我已经为每隔一行着色,但无法实现行数相等和列文本居中。我在新行后添加了 3pt 距离,但这似乎不是正确的解决方案。
这是我的代码:
\documentclass[a4paper, 12pt]{article}
\usepackage{color}
\usepackage{longtable}
\usepackage{colortbl}
\usepackage{booktabs}
\definecolor{hellgrau}{gray}{0.9}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\begin{document}
\begin{longtable}[c]{>{\kern-\tabcolsep}lll<{\kern-\tabcolsep}}\toprule
\ra{1.3}
A & B & C \\
\midrule
\endhead
A & B & C \\[3pt]
\rowcolor{hellgrau}
A & B & C \\[3pt]
A & B & C \\[3pt]
\rowcolor{hellgrau}
A & B & C \\[3pt]
A & B & C \\[3pt]
\bottomrule
\end{longtable}
\end{document}
答案1
你应该发出指令\ra{1.3}
前 \begin{longtable}
. 如果需要,使用\begingroup
和\endgroup
来本地化 的范围\ra{1.3}
。
\documentclass[a4paper, 12pt]{article}
\usepackage[table]{xcolor}
\usepackage{longtable}
\usepackage{booktabs}
\definecolor{hellgrau}{gray}{0.9}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\begin{document}
\begingroup % localize effect of the following instruction
\ra{1.3}
\begin{longtable}{>{\kern-\tabcolsep}lll<{\kern-\tabcolsep}}
\toprule
A & B & C \\
\midrule
\endhead
\bottomrule
\endfoot
A & B & C \\
\rowcolor{hellgrau}
A & B & C \\
A & B & C \\
\rowcolor{hellgrau}
A & B & C \\
A & B & C \\
\end{longtable}
\endgroup
\end{document}
答案2
我建议您改用cellspace
包;它定义了以字母 S 为前缀的限定符的列中单元格顶部和底部的最小垂直填充。这会产生一个稍微简单的代码(无需加载,color
因为colortbl
它会这样做):
\documentclass[a4paper, 12pt]{article}
\usepackage{longtable}
\usepackage{colortbl}
\usepackage{booktabs}
\definecolor{hellgrau}{gray}{0.9}
\usepackage{cellspace}
\setlength\cellspacetoplimit{3pt}
\setlength\cellspacebottomlimit{3pt}
\begin{document}
\begin{longtable}[c]{>{\kern-\tabcolsep}*{3}{Sl}<{\kern-\tabcolsep}}\toprule
A & B & C \\
\midrule\addlinespace[2pt]
\endhead
A & B & C \\
\rowcolor{hellgrau}
A & B & C \\
A & B & C \\
\rowcolor{hellgrau}
A & B & C \\
A & B & C \\
\bottomrule
\end{longtable}
\end{document}