表格中每隔一行后仅留有垂直空间

表格中每隔一行后仅留有垂直空间

我有几个表格采用以下自定义格式,我想在每隔一行后添加垂直空间(例如 6 pt)。我知道这可以手动完成。我只是想知道是否有一个流程可以更快地完成此操作。请注意,我的表格来自外部 tex.files。因此,如果可能的话,我希望有一个解决方案可以应用于通过input(来源:xtable/R)导入的表格。但我也很好奇如何快速完成通常在 Latex 中生成的表格。

这是一个简单的 MWE:

\documentclass[a4paper, 12pt, headsepline, smallheadings]{scrreprt}
\usepackage{dcolumn}
\usepackage{booktabs}
\usepackage[a4paper]{geometry}
\newcolumntype{Y}{D..{-1}}
\geometry{left=2cm,right=5cm,top=2cm,bottom=2cm}

\begin{document}
\begin{table}[htbp]
\centering
\caption{aaa} 
{\normalsize
\begin{tabular}{lYYYYY}
\toprule 
& \multicolumn{1}{r}{A} & \multicolumn{1}{c}{B} & 
\multicolumn{1}{c}{C} & \multicolumn{1}{c}{E} &
\multicolumn{1}{c}{D} \\
\midrule 
\multicolumn{1}{l}{X} &  0.34  &  0.08^{***} & -2.57^{***} &  0.60^{***} &  80.97 \\ 
& (0.44) & (0.05) & (1.26) & (0.24) &  \\ 
\multicolumn{1}{l}{Y} &  0.34  &  0.20^{***} &  0.99^{***} &  0.00^{***}   & 97.71 \\ 
& (1.30) & (1.03) & (0.01) & (0.00) &  \\ 
\multicolumn{1}{l}{Z} &  0.56  & 5.41^{***} &  0.08^{***} &  0.98^{***} & 33.27 \\ 
& (1.30) & (2.030) & (0.03) & (0.01) &  \\ 
\bottomrule 
\end{tabular}
}
\end{table}
\end{document}

所以最后,我希望这个表格看起来尽可能好看。除了内容/括号/星号之外,任何建议都值得赞赏。这些必须保留。谢谢。

答案1

我不知道有没有好的方法可以做到这一点,所以我会建议一个可能不是特别好的破解方法。诀窍是交替替换\\和。前者相当于您的旧\crsng,后者相当于您的旧。\crdbl\\\\[6pt]

  1. 首先介绍一下以下内容\begin{tabular}

    \global\let\restorecr=\
    
  2. 之后介绍以下内容\toprule

    \global\let\oldcr=\\
    \global\def\crsng{\global\let\\=\crdbl\oldcr}
    \global\def\crdbl{\global\let\\=\crsng\oldcr[6pt]}
    \global\let\\=\crdbl
    
  3. 之后介绍以下内容\end{tabular}

    \global\let\\=\restorecr
    

如果您不喜欢它对表格页眉和页脚的影响,您可能需要对其进行一些调整。

结果

相关内容