使用Quarto生成PDF时多行子图(subfigures)被截断的问题
解决Quarto生成PDF时大尺寸子图跨页截断问题
问题根源:Quarto通过layout-nrow定义的子图会被打包进同一个LaTeX figure浮动环境,而LaTeX的figure环境不支持跨页,导致大尺寸子图挤在同一页被截断。
下面提供两种可行解决方案:
方案一:用LaTeX subfig包实现跨页子图(保留子图编号关联)
修改YAML头部引入subfig包,手动用LaTeX命令编写跨页子图:
--- title: "test" format: html: theme: cosmo pdf: documentclass: scrreprt include-in-header: text: | \\usepackage{booktabs} \\usepackage{longtable} \\usepackage{array} \\usepackage{multirow} \\usepackage{wrapfig} \\usepackage{float} \\usepackage{colortbl} \\usepackage{pdflscape} \\usepackage{tabu} \\usepackage{threeparttable} \\usepackage{threeparttablex} \\usepackage[normalem]{ulem} \\usepackage{makecell} \\usepackage{xcolor} \\usepackage{subfig} # 添加subfig包支持跨页子图 docx: default editor: visual --- test \\begin{figure}[p] \\subfloat[款冬花序]{\\includegraphics[width=\\textwidth]{images/Petasites_hybridus_inflorescence_-_Keila.jpg}\\} \\caption{款冬植株相关图(续见下页)} \\end{figure} \\clearpage # 强制分页 \\begin{figure}[p] \\subfloat[款冬叶片]{\\includegraphics[width=\\textwidth]{images/Petasites_hybridus_leaf.JPG}\\} \\caption{款冬植株相关图} \\label{fig-flower} \\end{figure}
这种方式会生成图1a和图1b的子图编号,两个子图分别在不同页面显示,完美保留子图的关联关系。
方案二:拆分独立图+强制分页(简单快捷)
如果不需要严格的子图编号,直接拆分两个独立图,用\\clearpage强制分页:
--- title: "test" format: html: theme: cosmo pdf: documentclass: scrreprt include-in-header: text: | \\usepackage{booktabs} \\usepackage{longtable} \\usepackage{array} \\usepackage{multirow} \\usepackage{wrapfig} \\usepackage{float} \\usepackage{colortbl} \\usepackage{pdflscape} \\usepackage{tabu} \\usepackage{threeparttable} \\usepackage{threeparttablex} \\usepackage[normalem]{ulem} \\usepackage{makecell} \\usepackage{xcolor} docx: default editor: visual --- test ::: {#fig-flower-1} {width=100%} 图1:款冬花序 ::: \\clearpage ::: {#fig-flower-2} {width=100%} 图2:款冬叶片 :::
这种方式操作简单,适合不需要子图关联编号的场景。
内容的提问来源于stack exchange,提问作者rfraser
相关产品推荐
相关产品推荐

