问题描述
我有一个 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")
这是目前的样子:
这是我想要的样子:
注意:我在 PowerPoint 中制作了这个目标表。它在很多方面看起来与原始版本不同,因为我没有格式化原始版本。我试图复制的唯一区别是(中值)和(平均值)小于 score 并且它们位于同一个标题单元格中。
解决方法
您可以使用 compose
、as_paragraph
和 as_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)
)
)
)