如何在Quarto中标记并引用可执行代码块?
Quarto可执行代码块同时实现清单显示与引用的解决方法
问题根源
- 直接用
#lst-xxx标记的代码块属于纯静态代码清单,仅支持引用但无法执行代码——它本质就是非执行的静态代码块,自然跑不了R代码。 - 用
#| lst-label设置标记是错误用法,Quarto里代码块的交叉引用标签统一用label,而且可执行代码块得额外开启清单模式,才能被当作可引用的代码清单处理。
正确实现方式
要让可执行R代码块同时满足「执行代码」+「作为代码清单显示」+「正文引用」,只需在代码块选项里加两个关键配置:
#| label: lst-xxx:设置交叉引用标签(lst-是代码清单的常用前缀,方便和图片的fig-前缀区分)#| listing: true:开启代码清单模式,让可执行代码块被赋予清单编号并支持引用
示例代码块:
#| label: lst-calculate-mean #| listing: true #| echo: true # 计算向量平均值 x <- seq(1, 10, by = 1) mean(x)
正文引用时直接写@lst-calculate-mean,渲染后会显示对应的代码清单编号(比如「代码清单1」),同时代码块会正常执行并输出结果。
可选自定义
如果想给代码清单加标题,补充#| listing-title: "计算向量平均值"参数即可,渲染后会在代码块上方显示自定义标题。
内容的提问来源于stack exchange,提问作者Spacedman
相关产品推荐
相关产品推荐

