You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rmarkdown Word输出中自定义flextable标题的对齐、字体与斜体?

解决flextable表格标题格式自定义问题

由于flextable的part参数不支持直接控制caption,可通过以下三种方法实现标题的居中对齐、指定字体和取消斜体:

方法1:结合officer包修改默认表格标题样式

flextable的标题默认使用Word的"Table Caption"样式,可通过officer包直接修改该样式的格式:

library(flextable)
library(magrittr)
library(officer)

# 创建Word文档对象
doc <- read_docx()

# 重置并定义新的表格标题样式
doc <- doc %>%
  # 移除原有默认样式
  style_remove(style_id = "Table Caption") %>%
  # 添加自定义样式:居中、Calibri字体、无斜体
  style_add(
    style_id = "Table Caption",
    fp_text = fp_text(
      font.family = "Calibri",
      italic = FALSE,
      font.size = 10
    ),
    fp_par = fp_par(text.align = "center")
  )

# 生成flextable并设置标题
ft <- head(mtcars[,1:5]) %>% 
  flextable() %>% 
  set_caption(caption = "展示mtcars数据集的部分列") %>%
  add_footer_lines("也可基于可选参数col_keys实现") %>%
  font(part = "footer", fontname = "Consolas") %>%
  bold(bold = TRUE, part = "footer")

# 将表格加入文档并保存
doc <- doc %>% body_add_flextable(ft)
print(doc, target = "自定义标题格式.docx")

方法2:使用自定义Word模板

提前在Word中创建一个模板文档,修改其中的"Table Caption"样式为你需要的格式(居中、指定字体、取消斜体),然后在Rmarkdown的YAML中指定该模板:

---
output:
  word_document:
    reference_docx: "自定义模板.docx"
---

之后在R代码中正常使用set_caption,生成的表格标题会自动套用模板中的样式。

方法3:手动添加自定义格式的标题段落

不使用flextable自带的set_caption,而是通过officer在表格上方单独添加一个自定义格式的段落作为标题:

library(flextable)
library(magrittr)
library(officer)

doc <- read_docx()

# 添加自定义格式的标题
doc <- doc %>%
  body_add_par(
    value = "展示mtcars数据集的部分列",
    style = style_add(
      style_id = "自定义标题",
      fp_text = fp_text(font.family = "Calibri", italic = FALSE),
      fp_par = fp_par(text.align = "center")
    )
  )

# 生成并添加表格
ft <- head(mtcars[,1:5]) %>% 
  flextable() %>% 
  add_footer_lines("也可基于可选参数col_keys实现") %>%
  font(part = "footer", fontname = "Consolas") %>%
  bold(bold = TRUE, part = "footer")

doc <- doc %>% body_add_flextable(ft)
print(doc, target = "自定义标题格式.docx")

内容的提问来源于stack exchange,提问作者John Stone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:23:09