如何在flextable header中有多种字体大小?

问题描述

我有一个 flextable(),我想让标题有两种字体大小。主要文本的一种尺寸(例如,20 pt 字体),以及较小的括号文本(12 pt 字体)。这是使整个标题为 20 pt 的代码

注意:在最终解决方案中,我不希望括号文本成为一个全新的行,除非它可以像下面的示例所示一样接近原始文本。

library(flextable)
library(dplyr)

set_flextable_defaults(font.size = 20) #Works but makes all header size 20

flextable(test) %>%
  set_header_labels(values = list(name = "Name",med_score = "score (Median)",mean_score = "score (Mean)")) %>%
  align(align = "center",part = "header")

编辑:添加图片

这是目前的样子:

enter image description here

这是我想要的样子:

enter image description here

注意:我在 PowerPoint 中制作了这个目标表。它在很多方面看起来与原始版本不同,因为我没有格式化原始版本。我试图复制的唯一区别是(中值)和(平均值)小于 score 并且它们位于同一个标题单元格中。

解决方法

您可以使用 composeas_paragraphas_chunk 来实现它。

供参考:https://ardata-fr.github.io/flextable-book/cell-content-1.html#multi-content

library(flextable)

ft <- flextable(airquality[ sample.int(10),])

compose(
  ft,j = "Ozone",part = "header",value = as_paragraph(
    "Ozone ",as_chunk(
      " (Median)",props = fp_text_default(color = "#006699",font.size = 5)
    )
  )
)

enter image description here