如何在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
相关产品推荐
相关产品推荐

