如何在 flextable 包中使用 `fp_text_default ` 函数

How to use `fp_text_default ` function in flextable package

我看到flextable包里有个函数,就是fp_text_default。在此函数的帮助文件中,您可以找到的唯一示例是

fp_text_default(bold = TRUE)

我想知道我是否可以使用此功能来避免每次在我的 flextables 中使用自定义格式时设置 font.size=11,例如

flextable(df) %>%
  compose(value = as_paragraph(
    as_chunk("foo", props = fp_text(shading.color = "orange", font.size=11))
  )) %>%
  compose(value = as_paragraph(
    as_chunk("bar", props = fp_text(bold = TRUE, font.size=11))
  ))

fp_text 中的默认 font.size 参数是 10,我总是必须将它设置为 11。

可以使用fp_text_default将font.size永久设置为11吗?

您可以使用 set_flextable_defaults() 这样您就不必一次又一次地调用 fontsize() 或一些其他功能(即填充、颜色)。

https://davidgohel.github.io/flextable/reference/set_flextable_defaults.html

fp_text_default() 是一个方便的函数,只覆盖指定的值,它保持其他格式参数不变。比 fp_text() 强制您指定所有参数要方便得多...

两者可以一起使用...

---
title: "Untitled"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(flextable)
library(magrittr)
set_flextable_defaults(
  font.family = "Arial", font.size = 10,
  padding = 3, border.color = "gray"
)
```

```{r}
flextable(head(iris)) %>%
  append_chunks(
    i = 1, j = 1,
    as_chunk(" yo", props = fp_text_default(color = "red"))
  ) %>%
  autofit()


flextable(head(mtcars)) %>%
  append_chunks(
    i = 1, j = 1,
    as_chunk(" yo", props = fp_text_default(color = "red"))
  ) %>%
  autofit()

set_flextable_defaults(font.size = 12, padding = 5)
flextable(head(mtcars)) %>%
  append_chunks(
    i = 1, j = 1,
    as_chunk(" yo", props = fp_text_default(color = "red"))
  ) %>%
  autofit()

```