如何自定义Quarto PDF文档渲染后的输出文件名?
在Quarto中自定义PDF输出文件名
方法一:直接在YAML中配置动态文件名
这是最简洁的实现方式,不用写复杂函数,直接在输出配置里用R表达式生成目标文件名:
--- title: "Some title" author: "First Last" date: "`r format(Sys.Date(), '%d %B, %Y')`" output: pdf_document: output-file: "`r paste0(Sys.Date(), '_Report_FirstLast.pdf')`" ---
点击渲染按钮后,就能生成类似2022-08-08_Report_FirstLast.pdf的文件,和你之前RMarkdown的效果完全一致。
方法二:自定义渲染函数(使用quarto_render)
如果需要更灵活的控制(比如修改输出路径、添加更多动态参数),可以在YAML里定义render字段,调用quarto::quarto_render函数,逻辑和你之前RMarkdown的自定义knit函数对应:
--- title: "Some title" author: "First Last" date: "`r format(Sys.Date(), '%d %B, %Y')`" output: pdf_document render: | function(input_file, encoding) { # 生成带日期的输出文件名 output_file <- file.path(dirname(input_file), paste0(Sys.Date(), "_Report_FirstLast.pdf")) # 调用Quarto渲染函数 quarto::quarto_render(input = input_file, encoding = encoding, output_file = output_file) } ---
额外提示
- 两种方法中的R表达式都要用反引号包裹,Quarto会自动解析执行。
- 如果想让文件名更灵活(比如自动获取作者名),可以从元数据里提取,比如用
quarto::quarto_metadata$author替代硬编码的FirstLast,示例:paste0(Sys.Date(), "_Report_", gsub(" ", "", quarto::quarto_metadata$author), ".pdf")
内容的提问来源于stack exchange,提问作者Shubham
相关产品推荐
相关产品推荐

