我是在 R 和 RStudio 中使用 Quarto 制作 Revealjs 幻灯片的新手。我想在具有默认 gt 样式的幻灯片上包含一个 {gt} 表 ( https://gt.rstudio.com/ )。但我遇到的问题是该表是 HTML,并且从演示文稿 CSS 继承了自定义 CSS 样式。
例如,呈现的表格如下所示:字体不是默认的 gt 字体以及其他一些小样式。
---
format:
revealjs:
theme: [night]
highlight-style: a11y
transition: fade
slide-number: true
chalkboard: true
execute:
freeze: auto
---
Run Code Online (Sandbox Code Playgroud)
我尝试过的让我接近的一件事是将knit_print()gt 表的默认方法覆盖为 1. 将表转换为图像gt::gtsave(),然后 2. 使用 {magick} pkg 将图像转换为 ggplot,然后 3. knit_print() ggplot。但它在图像的左侧和右侧增加了空白。
library(tidyverse)
library(gtsummary)
library(knitr)
knit_print.gt_tbl <- function(x, ...) {
# save gt as image -----------------------------------------------------------
path_gt_table_image <- fs::file_temp(ext = "png")
gt_table_image <- gt::gtsave(x, filename = path_gt_table_image, ...)
# save image as ggplot -------------------------------------------------------
table_img <-
magick::image_read(path_gt_table_image) |>
magick::image_ggplot(interpolate = TRUE)
knitr::knit_print(table_img)
}
registerS3method("knit_print", "gt_tbl", knit_print.gt_tbl)
Run Code Online (Sandbox Code Playgroud)
此方法可行,但似乎是将表格放入演示文稿中的一种非常迂回的方法。那里有更好的东西吗?
Dan*_*erg 10
这个问题在 Twitter 上得到了回答https://twitter.com/grrrck/status/1545196268946857985
诀窍是gt::as_raw_html()与代码块选项一起使用results='asis'。raw html 函数输出 html,其中所有 css 样式都内联在样式属性中。
| 归档时间: |
|
| 查看次数: |
1255 次 |
| 最近记录: |