web-dev-qa-db-ja.com

R Markdownドキュメントのkable出力(booktabsオプションあり)の5行ごとのスペース

R Markdownドキュメントの一部としてテーブルをレンダリングするためにknitr::kable()を使用しています(それ自体がbookdownプロジェクト)。特に、booktabsオプションは(booktabs引数をTRUEに設定することにより)、見栄えの良い方法でテーブルをレンダリングします。ただし、5行ごとにスペースを入れないでください。

たとえば、次のコードは、PDFとしてレンダリングしたときに、ブックダウンデモのテーブルがどのように表示されるかを示しています。

_knitr::kable(
  head(iris, 20), caption = 'Here is a Nice table!',
  booktabs = TRUE
)
_

iris table with booktabs

5行ごとに表示されるスペースを含めないようにしたいのですが、knitr::kable()でこれを行う設定を見つけることができません。

27

行の高さが常に等しいとは限らないのは、デフォルトでは、booktabsがTRUEとして指定されている場合、kableはデフォルトで5行ごとに\addlinespaceを挿入します here

linesep = if (booktabs) c('', '', '', '', '\\addlinespace') else '\\hline'

これを変更するには、kable()の引数としてlinesep = ""を追加します。

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

enter image description here

詳細については、 kableの\ addlinespaceを取り除く を参照してください。

スタイルを変更したい場合は、このオプションをいじってみてください。たとえば、linesep = c("", "", "", "\\hline")は、4つのスペースごとに水平線を追加します。

44
Michael Harper