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

如何在Quarto R输出的Word文档中设置指定文字的颜色与样式

实现Quarto生成带自定义样式(加粗/颜色)的Word文档

你可以借助officer包的fp_text()和ftext()函数实现同一段落内的文本样式自定义,替代已停止维护的ReporteRs包。核心思路是先定义不同的文本格式规则,再将文本片段与对应格式绑定,最后组合成段落插入文档。

以下是完整的可运行代码:

---
title: "Title"
format: 
  docx:
    reference-doc: custom-reference-doc.docx
editor: visual
number-sections: false
execute: 
  echo: false
  warning: false
  error: false
mainfont: Times New Roman
sansfont: Times New Roman
---
library(officer)
library(dplyr)

# 定义不同的文本格式
format_bold <- fp_text(bold = TRUE, font.size = 12, color = "black")
format_red <- fp_text(bold = FALSE, font.size = 12, color = "#FF0000")
format_normal <- fp_text(bold = FALSE, font.size = 12, color = "black")

# 创建带格式的文本片段
text_part1 <- ftext("I want this phrase ", prop = format_bold)
text_part2 <- ftext("in different styles ", prop = format_red)
text_part3 <- ftext("and colors.", prop = format_normal)

# 组合所有文本片段
styled_text <- c(text_part1, text_part2, text_part3)

# 读取模板文档并插入带样式的段落
doc <- read_docx("custom-reference-doc_10.docx")
doc <- body_add_par(doc, value = styled_text, style = "First Paragraph")

# 输出最终文档
print(doc, target = "file.docx")

代码说明:

  • fp_text():用于定义文本格式,可设置bold(加粗)、color(颜色,支持十六进制色码或英文色名)、font.size(字号)等参数。
  • ftext():将具体文本与指定格式绑定,生成带样式的文本对象。
  • 将多个ftext对象组合成向量后,传给body_add_par()的value参数,即可实现同一段落内不同文本的样式区分。
  • 若需要结合自定义段落样式(如你模板中的"First Paragraph"),直接在body_add_par()的style参数指定即可,文本级样式会覆盖段落样式中的对应属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:12:10