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

officedown中run_reference自定义格式未生效的解决咨询

解决officedown中run_reference自定义样式不生效的问题

问题原因

你设置的run_autonum(..., bkm_all = TRUE)会将整个题注(包括编号和文本)绑定为书签,导致run_reference引用时自动继承题注的文本样式,忽略了你指定的fp_text_ref配置。

修改步骤

  1. 调整题注的自动编号设置
    将run_autonum中的bkm_all = TRUE改为bkm_all = FALSE,让书签仅绑定到题注的编号部分,避免引用继承整个题注的样式:

    fpar(
      run_autonum(seq_id = 'fig', bkm = 'figure1', pre_label = "Figure ", bkm_all = FALSE, prop = fp_text_cap),
      ftext(paste0("Caption"), prop = fp_text_cap),
      fp_p = fp_par(text.align = "justify", line_spacing = 1.15)
    )
    
  2. 保留run_reference的样式参数
    保持run_reference的prop = fp_text_ref设置不变,此时引用文本会正确应用你定义的红色11号Calibri字体样式:

    这是对`r run_reference(id = "figure1", prop = fp_text_ref)`的引用。
    

完整修改后的代码

---
output:
  officedown::rdocx_document:
---
knitr::opts_chunk$set(echo = FALSE)
if (!require("pacman")) install.packages("pacman"); library(pacman)
pacman::p_load(officer, officedown)

fp_text_ref <- fp_text_lite(font.size = 11, font.family = "Calibri", color = "red")

fp_text_cap <- fp_text_lite(font.size = 10, font.family = "Calibri")

这是对r run_reference(id = "figure1", prop = fp_text_ref)的引用。

plot(mtcars)

fpar(
  run_autonum(seq_id = 'fig', bkm = 'figure1', pre_label = "Figure ", bkm_all = FALSE, prop = fp_text_cap),
  ftext(paste0("Caption"), prop = fp_text_cap),
  fp_p = fp_par(text.align = "justify", line_spacing = 1.15)
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 00:49:57