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

时间:2018-05-05 14:29:34

标签: r r-markdown kable kableextra

我想在两列LaTeX文章中包含一个更宽的表。这可能是 在LaTeX中使用\begin{table*} ... \end{table*}代替 \begin{table} ... \end{table}。如何判断R包 kable kableExtra 为 实现这个目标?

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

library(kableExtra)
kable(head(cars, 1), format = "latex") %>% 
  kable_styling()

产生:

#> \begin{table}[H]
#> \centering
#> \begin{tabular}{r|r}
#> \hline
#> speed & dist\\
#> \hline
#> 4 & 2\\
#> \hline
#> \end{tabular}
#> \end{table}

但我想要的是以下内容:

#> \begin{table*}[H]
#> \centering
#> \begin{tabular}{r|r}
#> \hline
#> speed & dist\\
#> \hline
#> 4 & 2\\
#> \hline
#> \end{tabular}
#> \end{table*}

我知道我可以使用gsub来破解输出,但想知道是否存在 干净利落的方式。

reprex package(v0.2.0)创建于2018-05-05。

3 个答案:

答案 0 :(得分:3)

account_lines之前,我一直在为同一问题苦苦挣扎,甚至为此向knitr添加了功能请求:

只需将public string UserName { get; set; } 添加为kable的参数:

table.env='table*'

会产生

knitr::kable(head(cars,1), format = "latex", table.env='table*')

答案 1 :(得分:2)

latex_table_env

中有一个kable_styling
library(kableExtra)
kable(head(cars, 1), format = "latex") %>% 
  kable_styling(latex_table_env = "table*")

答案 2 :(得分:1)

我不知道knitr是否可行,但使用xtable可以轻松实现:

data(cars)
library(xtable)
library(magrittr)

xtable(head(cars, 1), align="rr|r") %>%
  print.xtable(
    floating.environment="table*", # use table* environment
    include.rownames=FALSE,
    table.placement="H"
  )

# % latex table generated in R 3.4.4 by xtable 1.8-2 package
# % Sat May  5 16:47:49 2018
# \begin{table*}[H]
# \centering
# \begin{tabular}{r|r}
#   \hline
# speed & dist \\ 
#   \hline
# 4.00 & 2.00 \\ 
#   \hline
# \end{tabular}
# \end{table*}