微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单击 rmarkdown::beamer_presentation 时突出显示 kable 表的表条目

如何解决单击 rmarkdown::beamer_presentation 时突出显示 kable 表的表条目

在用 LaTex beamer presentation 生成rmarkdown::beamer_presentation 中,有没有办法在点击时突出显示 kableExtra 表格的特定单元格的内容

highlights upon clicking

MWE

---
output:
  bookdown::pdf_book:
    base_format: rmarkdown::beamer_presentation
    latex_engine: xelatex
    slide_level: 2
---

```{r}
library(dplyr)
library(kableExtra)
```

## Table
```{r table,echo = FALSE}
my_df <- mtcars[1:4,1:2]
my_table <- kable(my_df,booktabs = T,caption = "Table caption")
my_table
```

解决方法

建议的解决方案使用 kableExtrarow_spec/column_spec/cell_spec functionality,为此必须加载多个 LaTex 包(例如,通过 header-includes: ...)。

enter image description here

解决方案只剩下一件小事:表编号增加
也就是说,第一帧上的表格编号为“1”,第二帧上的表格编号为“2”。
为了让事情看起来像添加的颜色是两个框架之间的唯一区别,理想情况下,两个表格的编号应该相同。

要根据需要为行/列/单元格着色,另请参阅 rmarkdown cookbook 以了解有关如何使用 row_spec/column_spec/cell_spec 的详细信息。

---
output:
  bookdown::pdf_book:
    base_format: rmarkdown::beamer_presentation
    latex_engine: xelatex
    slide_level: 2
header-includes:
  - \usepackage{booktabs} 
  - \usepackage{array}          
  - \usepackage{multirow}   
  - \usepackage{wrapfig}    
  - \usepackage{float}
  - \usepackage{colortbl}    
  - \usepackage{pdflscape}
  - \usepackage{tabu}
  - \usepackage{threeparttable} 
  - \usepackage{threeparttablex}
  - \usepackage[normalem]{ulem}
  - \usepackage{makecell}
---

```{r include=FALSE}
library(dplyr)
library(kableExtra)
```

## Table
```{r table,echo = FALSE}
my_df <- mtcars[1:4,1:2]
my_table <- kable(my_df,booktabs = T,caption = "Table caption")
my_table
```

## Table {.noframenumbering}
<!-- Add "{.noframenumbering}" such that the frame number is the same on both frames -->
```{r table-with-colored-cell,echo = FALSE}
special_cell <- c(rep(F,3),T)
colors_of_column_with_special_cell <- c(rep("black","red")

my_table %>% 
  column_spec(2,strikeout = special_cell,bold = special_cell,color = colors_of_column_with_special_cell)
```

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。