簡體   English   中英

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

[英]2-column LaTeX environment table* in kable, kableExtra

我想在兩列LaTeX文章中包括一個更寬的表。 這可以在LaTeX中使用\\begin{table*} ... \\end{table*}而不是\\begin{table} ... \\end{table} 如何告訴R包kablekableExtra實現此目的?

下面產生了通常的\\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軟件包 (v0.2.0)創建於2018-05-05。

Yiyi Xie告訴我已經可以做到這一點之前,我一直在同一個問題上掙扎,甚至為此還向knitr添加了功能請求。

只需將table.env='table*'添加為table.env='table*'的參數即可:

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

將產生

\begin{table*}

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

\end{table*}

latex_table_env中有一個kable_styling

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

我不知道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*}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM