kable、kableExtra 中的 2 列 LaTeX 环境表*

chr*_*ris 3 r r-markdown kableextra kable

我想在两列 LaTeX 文章中包含一个更宽的表格。这可以在 LaTeX 中使用\begin{table*} ... \end{table*}而不是 \begin{table} ... \end{table}. 我如何告诉 R 包kablekableExtra来实现这一点?

以下产生了通常的\begin{table}

library(kableExtra)
kable(head(cars, 1), format = "latex") %>% 
  kable_styling()
Run Code Online (Sandbox Code Playgroud)

它产生:

#> \begin{table}[H]
#> \centering
#> \begin{tabular}{r|r}
#> \hline
#> speed & dist\\
#> \hline
#> 4 & 2\\
#> \hline
#> \end{tabular}
#> \end{table}
Run Code Online (Sandbox Code Playgroud)

但我想要的是以下内容:

#> \begin{table*}[H]
#> \centering
#> \begin{tabular}{r|r}
#> \hline
#> speed & dist\\
#> \hline
#> 4 & 2\\
#> \hline
#> \end{tabular}
#> \end{table*}
Run Code Online (Sandbox Code Playgroud)

我知道我可以gsub用来破解输出,但想知道是否有办法干净利落地做到这一点。

reprex 包(v0.2.0)于 2018 年 5 月 5 日创建。

小智 5

我在同样的问题上苦苦挣扎,甚至为此向 knitr 添加了一个功能请求,在Yihui Xie 告诉我已经可以这样做之前:

只需添加table.env='table*'为 kable 的参数:

knitr::kable(head(cars,1), format = "latex", table.env='table*')
Run Code Online (Sandbox Code Playgroud)

会产生

\begin{table*}

  \begin{tabular}{r|r}
    \hline
    speed & dist\\
    \hline
    4 & 2\\
    \hline
  \end{tabular}

\end{table*}
Run Code Online (Sandbox Code Playgroud)