如何使用 R 中的 officer 在 Word 文档的标题中放置下标

How to put a subscript in a caption of a Word document using officer in R

我正在尝试为在 officer 中生成的标题添加下标。 我正在创建这样的标题:

library(officer)

doc <- read_docx('empty_file.docx')

autonum <- run_autonum(seq_id = 'fig', pre_label = 'Figure ')
caption <- block_caption(label='My caption includes SO2.', style = "caption", autonum = autonum)
doc <- body_add_caption(doc, caption)

print(doc, target = 'output.docx'))

不过,现在我想把'SO2'中的'2'放在下标中。我知道如何生成下标:

fp_text_prop <- fp_text(color='orange')
prop_mod <- update(fp_text_prop, vertical.align = 'subscript')
paragraph <- fpar(ftext('SO', prop = fp_text_prop), ftext('2', prop = prop_mod)))

但我不能在标题中使用生成的 fpar,因为 body_add_caption 需要 block_caption 的输出,而 block_caption 需要一个普通字符串作为参数label=.

如何在标题中放置 fpar 或者下标?

我找到了一个有点复杂但似乎有效的解决方案。

library(officer)

doc <- read_docx('empty_file.docx')

autonum <- run_autonum(seq_id = 'fig', pre_label = 'Figure ')

fp_text_prop <- fp_text(color='orange')
prop_mod <- update(fp_text_prop, vertical.align = 'subscript')

caption <- fpar(autonum, ftext('SO', prop = fp_text_prop), ftext('2', prop = prop_mod)))

doc <- body_add_fpar(x=doc, value=caption, style = 'caption')

print(doc, target = 'output.docx'))

有几点注意事项:fp_text_prop 应与标题的正常样式相匹配,并且 style = 'caption' 应更改为为文档中的标题选择正确的样式。