如何在Quarto的PDF输出中导入PNG文件实现子图布局?
在Quarto PDF中插入PNG子图的可行方案
方法1:用Quarto原生Subfigure语法(推荐)
这是适配PDF输出最直接的方式,能生成带规范子标题的2×2布局,代码示例如下:
::: {#fig-multiplot layout-ncol=2} {#fig-sub1 width="45%"} {#fig-sub2 width="45%"} {#fig-sub3 width="45%"} {#fig-sub4 width="45%"} 整体组合图的标题 :::
layout-ncol=2:强制子图按2列排列,4张图自动变成2×2布局width="45%":控制单张子图宽度,避免超出页面或挤在一起- 子图的
![子标题]会自动生成带(a)(b)(c)(d)标识的子标题,符合学术PDF排版规范 #fig-multiplot是整体图的全局标签,方便后续交叉引用
方法2:结合knitr代码块实现
如果习惯用R代码块,也可以通过设置chunk参数实现:
```{r fig-multiplot, fig.subcap=c("子图A描述", "子图B描述", "子图C描述", "子图D描述"), fig.ncol=2, out.width="45%", fig.cap="整体组合图标题"} knitr::include_graphics(c("plot1.png", "plot2.png", "plot3.png", "plot4.png"))
- `fig.subcap`:指定每个子图的标题,自动生成带字母标识的子标题 - `fig.ncol=2`:设置2列布局,自动排成2×2 - `out.width="45%"`:控制子图宽度,保证布局美观 ## 之前方法失败的原因 - 单独调用`knitr::include_graphics`时,每张图会被识别为独立的顶层图,无法合并为子图;若只传图片向量但没设置`fig.subcap`等参数,Quarto不会解析子图结构,只会渲染第一张图 - 普通div布局不属于Quarto的原生图环境,无法触发子标题的渲染逻辑,所以没法生成规范的子标题 内容的提问来源于stack exchange,提问作者Matthew Son
相关产品推荐
相关产品推荐

