Geg*_*naV 9 r rstudio r-markdown kableextra
我使用深色 RStudio 主题并尝试knitrExtra
在 R Markdown 文档中打印表格。不幸的是,表格的主要内容是不可见的(即白色背景上的白色符号)。
问题:如何使用kableExtra
深色 RStudio 编辑器主题使 R Markdown 文档中的表格内容可见?
代码示例:
```{r}
library(kableExtra)
head(iris) %>%
knitr::kable(caption = "**Table 1.** Iris data. ", digits = 2) %>%
kableExtra::kable_styling()
```
Run Code Online (Sandbox Code Playgroud)
输出示例:
如果选择文本,内容会暂时可见,但这不是我正在寻找的解决方案:
RStudio 版本: 1.1.463
kabeExtra
版本: 0.9.0
编辑 RStudio 主题文件不起作用,因为正如 @Simbamangu 指出的那样,使用 {kableExtra} 时这些更改会被忽略。
这是一个解决方法,我们在打印期间编辑 kable html 以包含设置颜色样式的内联 css。
首先运行这个编辑版本kableExtra:::print.kableExtra()
:
print.kableExtra <- function (x, ...) {
view_html <- getOption("kableExtra_view_html", TRUE)
if (view_html & interactive()) {
dep <- list(
rmarkdown::html_dependency_jquery(),
rmarkdown::html_dependency_bootstrap(theme = "cosmo"),
kableExtra::html_dependency_kePrint(),
kableExtra::html_dependency_lightable()
)
x <- sub('style="', 'style="color: black; ', as.character(x), fixed = TRUE)
html_kable <- htmltools::browsable(
htmltools::HTML(
as.character(x),
"<script type=\"text/x-mathjax-config\">MathJax.Hub.Config({tex2jax: {inlineMath: [[\"$\",\"$\"]]}})</script><script async src=\"https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML\"></script>"
)
)
htmltools::htmlDependencies(html_kable) <- dep
class(html_kable) <- "shiny.tag.list"
print(html_kable)
}
else {
cat(as.character(x))
}
}
Run Code Online (Sandbox Code Playgroud)
更改包括添加x <- sub('style="', 'style="color: black; ', as.character(x), fixed = TRUE)
行以及添加对某些函数的完整引用。
然后你可以像以前一样打印表格:
head(iris) %>%
knitr::kable(caption = "**Table 1.** Iris data. ", digits = 2) %>%
kableExtra::kable_styling()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
987 次 |
最近记录: |