Quarto Pub 中的 gt 表格没有幻灯片 CSS 样式

Dan*_*erg 9 r gt quarto

我是在 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 样式都内联在样式属性中。