在上一行添加空格

在上一行添加空格

我有一张看起来像这样的表格:

Group 1        1  2
  Sub point    1  3
  Subpoint     2  3
Group 2        3  4
  Sub point    4  5
  Pie!         3  1
Group 3        4  7
  Cake?        6  8
  Imma bored   4  7

该表是用 R 脚本生成的,但行以迭代方式输出。 (我尝试使用 xtable,但解析和字符串连接比这里显示的要多得多。)

我想在组行和前一行之间添加一个小的垂直间距,因此我得到以下格式:

Group 1        1  2
  Sub point    1  3
  Subpoint     2  3

Group 2        3  4
  Sub point    4  5
  Pie!         3  1

Group 3        4  7
  Cake?        6  8
  Imma bored   4  7

通常,添加垂直间距可以使用\vspace,但这会增加间距行。由于我的脚本(以及我不想实现前瞻的懒惰),我正在寻找一个命令来增加行间距以前的行。例如

...
&  Subpoint   &  2  & 3 \\
\multicolumn{2}{l}{\addVspaceAbove{1em} Group 2 } &   3 &  4 \\
&  Sub point  &  4 &  5 \\
...

提前致谢!


解决方案

感谢 Qrrbrbirlbel,提供了一个前后一致的解决方案:

\begin{tabular}[ht]{llcc}
\multicolumn{2}{l}{Group} & Value 1 & Value 2 \\
\hline
\multicolumn{2}{l}{Group 1 }    & 1 & 2 \\
& Sub point  & 1 & 3 \\
& Subpoint   & 2 & 3 \\
\multicolumn{2}{l}{Group 2 }       & 3 & 4 \\
& Sub point  & 4 & 5 \\
& Pie!       & 3 & 1 \\
\multicolumn{2}{l}{\rule{0pt}{\dimexpr.7em+0.5em}Group 3 }       & 4 & 7 \\
& Cake?      & 6 & 8 \\
& Imma bored & 4 & 7 \\
\end{tabular}

答案1

您可以使用以下方法在行之间添加垂直空间

  • \\中的可选参数\\[.5em]
  • \addVspacebefore{.5em}定义为

    \newcommand*{\addVspaceabove}[1]{\rule{0pt}{\dimexpr.7em+#1}\ignorespaces}
    

    构建一个可以延伸通常的支柱\strut,或者

  • \noalign{\vspace{.5em}}这与 非常相似\\[.5em]

在下面的例子中,我还使用\midrulebooktabs提供良好水平规则的包。

代码

\documentclass{standalone}
\usepackage{booktabs}
\newcommand*{\addVspaceabove}[1]{\rule{0pt}{\dimexpr.7em+#1}\ignorespaces}
\begin{document}
\begin{tabular}{llcc}
    \multicolumn{2}{l}{Group}                         & Value 1 & Value 2 \\ \midrule
    \multicolumn{2}{l}{Group 1}                       &    1    &    2    \\
     & Sub point                                      &    1    &    3    \\
     & Subpoint                                       &    2    &    3    \\[.5em]
    \multicolumn{2}{l}{Group 2}                       &    3    &    4    \\
     & Sub point                                      &    4    &    5    \\
     & Pie!                                           &    3    &    1    \\
    \multicolumn{2}{l}{\addVspaceabove{.5em} Group 3} &    4    &    7    \\
     & Cake?                                          &    6    &    8    \\
     & Imma bored                                     &    4    &    7    \\\noalign{\vspace{.5em}}
    \multicolumn{2}{l}{Group 4}                       &    3    &    1    \\
     & \TeX                                           &    4    &    1    \\
     & \LaTeX                                         &    5    &    9
\end{tabular}
\end{document}

输出

在此处输入图片描述

相关内容