使 \addlinespace 全局适用于所有表格

使 \addlinespace 全局适用于所有表格

我发现这个命令很有用,\addlinespace[3pt]可以在行周围创建额外的白色边框。见示例:

\documentclass[a4paper]{report}

\usepackage{multirow,booktabs}
\usepackage[table]{xcolor}
\begin{document}

\begin{table}
\rowcolors{1}{gray!15}{gray!15}
\begin{tabular}{rrrrr}
\rowcolor{gray!50}
Header & 1     & 2     & 3     & 4 \\ \addlinespace[3pt]
Row1  & a     & b     & c     & d \\
\multicolumn{1}{c}{} & a1    & b1    & c1    & d1 \\ \addlinespace[3pt]
\multicolumn{1}{c}{\multirow{-2}[0]{*}{Multirow1}} & a2    & b2    & c2    & d2 \\
Row2  & aa    & ab    & ac    & ad \\ 
\end{tabular}
\end{table}

\end{document}

我还发现了如下命令:

\setlength\extrarowheight{7pt}
\renewcommand\arraystretch{1.2}

这里:在多行表格中垂直对齐和着色

但这两个命令似乎只是扩展了整行,而不是扩展了白色边框。不过,你还是调用它 ;)

由于我有很多包含大量行的表格,我的问题是如何\addlinespace[3pt]全局创建该命令,以便我不必在所有表格的每一行末尾添加它。

答案1

我不太确定你是否想在全部行,特别是涉及 a 的行\multirow

但是,\global\everycr{\addlinespace[3pt]}在第一个单元格中声明即可;记得\everycr在最后恢复为空的通常值。

\documentclass[a4paper]{report}

\usepackage{multirow,booktabs}
\usepackage[table]{xcolor}
\begin{document}
\begin{table}
\rowcolors{1}{gray!15}{gray!15}
\begin{tabular}{rrrrr}
\rowcolor{gray!50}
\global\everycr{\addlinespace[3pt]}%
Header & 1     & 2     & 3     & 4 \\
Row1  & a     & b     & c     & d \\
\multicolumn{1}{c}{} & a1    & b1    & c1    & d1 \\\addlinespace[-3pt]
\multicolumn{1}{c}{\multirow{-2}[0]{*}{Multirow1}} & a2    & b2    & c2    & d2 \\
Row2  & aa    & ab    & ac    & ad \\
\end{tabular}
\global\everycr{}
\end{table}

\end{document}

\addlinespace请注意,我在两行共享其标签之间放置了相反命令。

在此处输入图片描述

答案2

你真正想要的是全局rowsep设置。因此,你可以尝试使用tblr新的 LaTeX3 包中的环境tabularray

\documentclass[a4paper]{report}

\usepackage{xcolor}
\usepackage{tabularray}
\SetTblrInner{rowsep=2pt}

\begin{document}

\begin{table}
\centering
\begin{tblr}{
  colspec = {r|[1pt,white]rrrr},
  cell{3}{1} = {r=2}{m}, % multirow
  rows = {gray9},
  hlines = {1pt,white},
}
  Header    & 1     & 2     & 3     & 4  \\
  Row1      & a     & b     & c     & d  \\
  Multirow1 & a1    & b1    & c1    & d1 \\
            & a2    & b2    & c2    & d2 \\
  Row2      & aa    & ab    & ac    & ad \\ 
\end{tblr}
\end{table}

\end{document}

在此处输入图片描述

相关内容