如何在Quarto的.yml文件中正确配置参数解决params找不到报错
问题根因
Quarto Book 项目的参数配置有明确的层级规则,book节点下不支持params字段,你把参数写在这个位置时,knitr渲染引擎根本不会读取该配置,自然不会在代码运行环境中生成params对象,调用时就会触发找不到对象的报错。
修复方案
1. 调整全局参数的配置层级
如果要让所有章节qmd文件都能读取到pcn参数,把params配置块移到_quarto.yml的根层级,和project、book、format这些顶级配置项平级即可,修正后的完整配置如下:
project: type: book book: title: "Params_TEst" author: "Jane Doe" date: "15/07/2022" chapters: - index.qmd - intro.qmd - summary.qmd - references.qmd # 全局参数放根层级,不要嵌套在book节点下 params: pcn: 0.1 bibliography: references.bib format: html: theme: cosmo pdf: documentclass: scrreprt editor: visual
2. 单章节专属参数配置
如果某个参数只需要在单个qmd文件中使用,直接把params写在对应qmd文件顶部的YAML元数据块里即可,示例:
--- # 写在qmd文件最开头 params: pcn: 0.2 ---
注意事项
- 同名字段优先级:单qmd文件内配置的params > 项目根yml配置的全局params
- 测试参数时不要直接点单个qmd文件的「运行代码块」按钮,单文件独立运行不会读取项目级全局配置,也会报
params not found错误,要使用书籍全量渲染/预览功能测试 - 不要把
params嵌套在format、book等子节点下,这些位置的配置不会被注入到knitr运行环境
内容的提问来源于stack exchange,提问作者Philip
相关产品推荐
相关产品推荐

