【问题标题】:Quarto dataframe printing and styling四边形数据框打印和样式
【发布时间】:2022-11-03 16:50:55
【问题描述】:

在 quarto 中,我们可以选择控制默认的printing of dataframes,例如

---
title: "Example"
format:
  html:
    df-print: kable
---

## example kable

```{r}
mtcars |> head()
dim(mtcars)
```

现在我想做一些kable_styling 让它更有吸引力。我找到了一个可行的选项,

---
title: "Example"
format:
  html
---

```{r}
#| include: false
knit_print.data.frame = function(x, ...) {
  res = paste(c("", "", 
                knitr::kable(x, digits = 2) |> 
                  kableExtra::kable_styling()), collapse = "\n")
  knitr::asis_output(res)
}

registerS3method(
  "knit_print", "data.frame", knit_print.data.frame,
  envir = asNamespace("knitr")
)
```

## example kable


```{r}
mtcars |> head()
dim(mtcars)
```

我的问题是它适用于独立的 HTML 文件,但是当我有一本书有几个 .qmd 时,它就不起作用了。因此,我寻找一种在 YAML 中添加样式或使上述解决方案适用于 Quarto 书中的所有 qmd 文件的解决方案。

【问题讨论】:

    标签: r kable quarto


    【解决方案1】:

    一种可能的解决方案是在 Book 项目根目录中创建一个 R 脚本文件(假设 global.R),其中包含:

    全局.R

    knit_print.data.frame = function(x, ...) {
      res = paste(c("", "", 
                    knitr::kable(x, digits = 2) |> 
                      kableExtra::kable_styling()), collapse = "
    ")
      knitr::asis_output(res)
    }
    
    registerS3method(
      "knit_print", "data.frame", knit_print.data.frame,
      envir = asNamespace("knitr")
    )
    

    并在每个 .qmd 文件的开头获取此脚本,

    ```{r include=FALSE}
    source("global.R")
    ```
    

    【讨论】:

    • 是的,这也是我目前不太干净的实现。我希望有一个更通用、代码量更少的解决方案,但也许现在还不可能……
    • 好吧,到目前为止,在 quarto Book 项目中,quarto 在单独的环境和 AFAIK 中运行每个 qmd 文件,没有办法让全局 R 脚本适用于项目目录中的所有 qmd 文件。
    • 好的,那么它只有在存在 YAML 解决方案时才有效。不过,谢谢你的回复:)
    【解决方案2】:

    我当前的解决方案使用 df-print: kable 和一些额外的行条纹的 css 样式,例如

    .table-striped>tbody>tr:nth-of-type(odd)>* {
    
        --bs-table-accent-bg: rgb(81 191 237 / 5%);
        color: var(--bs-table-striped-color);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 2021-06-06
      相关资源
      最近更新 更多