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

Quarto HTML文档超26张图时自定义子标题为aa/bb格式

解决Quarto超26张图时字母编号溢出问题

当Quarto用英文字母作为图的编号标识时,第27个会因ASCII序列溢出显示为{,要改成aa/bb这类重复字母格式,只需自定义crossref的编号规则,用Lua过滤器实现:

步骤1:创建Lua过滤器文件

新建repeat-alpha.lua文件,写入以下代码,实现类似Excel列名的字母编号逻辑:

-- 自定义重复字母编号格式(1→a,26→z,27→aa,28→ab...)
quarto.utils.crossref.add_format("repeat-alpha", function(n)
  local result = ""
  while n > 0 do
    local remainder = (n - 1) % 26
    result = string.char(97 + remainder) .. result
    n = math.floor((n - remainder) / 26)
  end
  return result
end)

步骤2:配置Quarto文档

在文档YAML头部开启crossref并指定自定义编号格式,同时引用过滤器:

---
title: "多图编号测试"
format: html
crossref:
  fig-prefix: "图"  # 可根据需求修改,留空则直接显示aa、bb
  fig-numbering: repeat-alpha
filters:
  - repeat-alpha.lua
---

步骤3:动态生成测试图

用代码块批量生成超过26张图,验证编号:

library(ggplot2)
# 动态生成28张图
for (i in 1:28) {
  ggplot(data.frame(x = 1:10, y = rnorm(10)), aes(x, y)) +
    geom_point() +
    labs(caption = paste("测试图", i))
}

渲染后,第27张图的编号会显示为图aa,第28张为图ab,完全替代默认的溢出字符{。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 06:03:12