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

knitr编织为HTML时如何为图表与表格编号添加自定义前缀

R Markdown输出HTML格式时,要给图表、表格编号添加前缀(比如S)可按以下两种常用方案操作:

方案1:使用bookdown扩展输出(推荐,配置最简)

bookdown包封装的HTML输出格式原生支持图表自动编号和自定义前缀,和LaTeX输出的配置逻辑对齐,不需要额外写样式:

  1. 先修改Rmd文件头部的YAML输出配置,将原有的rmarkdown::html_document替换为bookdown::html_document2,如果需要带章节的层级编号(比如S1.1、S2.3),开启number_sections: true即可:
---
title: "你的文档标题"
output: 
  bookdown::html_document2:
    number_sections: true
    # 可保留你原来的其他HTML输出配置,比如toc、theme等
---
  1. 在文档开头的全局设置代码块中添加如下配置,即可把所有图、表编号前缀改为S:
knitr::opts_chunk$set(echo = TRUE)
# 设置图编号前缀
options(bookdown.figure.label.prefix = "Figure S")
# 设置表格编号前缀
options(bookdown.table.label.prefix = "Table S")

设置后生成的图表编号会展示为Figure S1.1、Table S1.1,和PDF输出的效果完全对齐。

方案2:原生HTML输出+CSS自定义(不依赖额外包)

如果你不想安装bookdown包,只用原生rmarkdown::html_document输出,可以直接在Rmd任意位置插入CSS代码块修改编号样式:

/* 初始化图、表计数器 */
body {
  counter-reset: fig-count 0 table-count 0;
}
/* 自定义图编号前缀 */
.figure-caption::before {
  counter-increment: fig-count;
  content: "Figure S" counter(fig-count) ". ";
}
/* 自定义表格编号前缀 */
table caption::before {
  counter-increment: table-count;
  content: "Table S" counter(table-count) ". ";
}
/* 如果原生生成的内容带默认编号,添加以下代码隐藏默认编号避免重复 */
.caption-number {
  display: none;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 23:54:03