使用 kable 表时有没有办法使用 knitr 的 css class 选项?
Is there a way to use knitr's css class options when using kable tables?
我最近阅读了关于 knitr 的 css classes 的块,如 and this example 中所述。
总的来说,这似乎很有效。我遇到的问题是,如果您使用的输出是 kable,这些选项似乎不再起作用。下面的例子说明了我在说什么。在前两个块中,我能够成功地将 css class bg-success
添加到我的输出中,但第三个块不应用它。
检查输出 html 文件,我发现前两个块包含在 <pre class='bg-success'>...</pre>
html 块中,而第三个块包含在 <table class=table table-condensed>...</table>
html块。 bg-success
class 在这里的任何地方都找不到。
有人得到 knitr 的 class.output 选项来处理 kable 输出吗?有没有一种干净的方法可以做到这一点?我知道我可以将代码块包装在 div 中并在那里应用 class,但这很混乱,如果可能的话我更愿意干净利落地做到这一点。
---
title: "My Test"
output: html_document
---
\```{r setup, include=FALSE}
library(knitr)
knitr::opts_chunk$set(
message = FALSE,
warning = FALSE)
\```
Class works when applied to text:
\```{r working, class.output='bg-success'}
paste("Normal", "R chunk", "output!!")
\```
Class works when applied to data frame:
\```{r working_table, class.output='bg-success'}
head(iris)
\```
Class does not work when applied to kable output:
\```{r not_working, class.output='bg-success'}
kable(head(iris))
\```
通过 table.attr
参数将 class bg-success
添加到 table:
knitr::kable(head(iris), table.attr = "class=\'bg-success\'") %>%
kableExtra::kable_styling()
我意识到你需要修改 HTML table 的样式,将 class/argument 传递给 kable_styling
function。
显然,不需要指定 format
参数:
knitr::kable(head(iris), table.attr = "class=\'bg-success\'", format = "html") %>%
kableExtra::kable_styling()
此外,您需要包括 library(kableExtra)
到 {r setup}
。
您可以在 13.1.11 Customize HTML tables
部分找到有关 table.attr
参数的更多信息
我最近阅读了关于 knitr 的 css classes 的块,如
总的来说,这似乎很有效。我遇到的问题是,如果您使用的输出是 kable,这些选项似乎不再起作用。下面的例子说明了我在说什么。在前两个块中,我能够成功地将 css class bg-success
添加到我的输出中,但第三个块不应用它。
检查输出 html 文件,我发现前两个块包含在 <pre class='bg-success'>...</pre>
html 块中,而第三个块包含在 <table class=table table-condensed>...</table>
html块。 bg-success
class 在这里的任何地方都找不到。
有人得到 knitr 的 class.output 选项来处理 kable 输出吗?有没有一种干净的方法可以做到这一点?我知道我可以将代码块包装在 div 中并在那里应用 class,但这很混乱,如果可能的话我更愿意干净利落地做到这一点。
---
title: "My Test"
output: html_document
---
\```{r setup, include=FALSE}
library(knitr)
knitr::opts_chunk$set(
message = FALSE,
warning = FALSE)
\```
Class works when applied to text:
\```{r working, class.output='bg-success'}
paste("Normal", "R chunk", "output!!")
\```
Class works when applied to data frame:
\```{r working_table, class.output='bg-success'}
head(iris)
\```
Class does not work when applied to kable output:
\```{r not_working, class.output='bg-success'}
kable(head(iris))
\```
通过 table.attr
参数将 class bg-success
添加到 table:
knitr::kable(head(iris), table.attr = "class=\'bg-success\'") %>%
kableExtra::kable_styling()
我意识到你需要修改 HTML table 的样式,将 class/argument 传递给 kable_styling
function。
显然,不需要指定 format
参数:
knitr::kable(head(iris), table.attr = "class=\'bg-success\'", format = "html") %>%
kableExtra::kable_styling()
此外,您需要包括 library(kableExtra)
到 {r setup}
。
您可以在 13.1.11 Customize HTML tables
部分找到有关table.attr
参数的更多信息