R标记文档中可编辑输出(带booktabs选项)中每五行后面的空格

R标记文档中可编辑输出(带booktabs选项)中每五行后面的空格,r,knitr,r-markdown,bookdown,kable,R,Knitr,R Markdown,Bookdown,Kable,我正在使用knitr::kable()作为R标记文档的一部分来呈现表格(该文档本身是bookdown项目的一部分)。特别是,booktabs选项(通过将booktabs参数设置为等于TRUE)以美观的方式呈现表格。但是,我希望每五行后面不要有空格 例如,下面是代码以及bookdown演示中的表格在呈现为PDF时的显示方式: knitr::kable( head(iris, 20), caption = 'Here is a nice table!', booktabs = TRUE )

我正在使用
knitr::kable()
作为R标记文档的一部分来呈现表格(该文档本身是bookdown项目的一部分)。特别是,booktabs选项(通过将
booktabs
参数设置为等于
TRUE
)以美观的方式呈现表格。但是,我希望每五行后面不要有空格

例如,下面是代码以及bookdown演示中的表格在呈现为PDF时的显示方式:

knitr::kable(
  head(iris, 20), caption = 'Here is a nice table!',
  booktabs = TRUE
)


我希望不包括每五行后面出现的空间,但我似乎在
knitr::kable()
中找不到这样的设置

行高不总是相等的原因是默认情况下,当booktabs指定为TRUE时,kable每5行插入一个
\addlinespace
,如下所示:

若要更改此设置,请将
linesep=”“
作为参数添加到
kable()

有关更多详细信息,请参阅


同样值得一提的是,如果您想更改样式,可以使用此选项。例如,
linesep=c(“,”,“,”,“\\hline”)
将每隔四个空格添加一条水平线。

基于上述示例,我对控制分隔感兴趣。这与下面的helper函数配合得很好。这使得控制测线间隔的位置成为可能

linesep<-function(x,y=character()){
  if(!length(x))
    return(y)
  linesep(x[-length(x)], c(rep('',x[length(x)]-1),'\\addlinespace',y))  
}
knitr::kable(
  head(iris, 20), caption = 'Here is a nice table!',
  booktabs = TRUE,
  linesep = linesep(c(3,2,1,1,3,5,4,1))
)

linesepThanks,成功了。我想我没有找到Q&A的原因是我没有搜索\addlinespace。知道正确的搜索词总是最难的:)
knitr::kable(
  head(iris, 20), caption = 'Here is a nice table!',
  booktabs = TRUE,
  linesep = ""
)
linesep<-function(x,y=character()){
  if(!length(x))
    return(y)
  linesep(x[-length(x)], c(rep('',x[length(x)]-1),'\\addlinespace',y))  
}
knitr::kable(
  head(iris, 20), caption = 'Here is a nice table!',
  booktabs = TRUE,
  linesep = linesep(c(3,2,1,1,3,5,4,1))
)