Quarto生成PDF时,如何在TOC、LoF、LoT后插入分页符?
在Quarto PDF中为目录/图表目录添加后置分页符
问题根源
你用before-body.tex插入\pagebreak会出现在标题和目录之间,是因为这个文件的内容会被插入到文档主体最开头,早于目录的渲染位置。
可行解决方案
方案1:自定义TeX片段文件
创建一个名为after-toc-lof.tex的TeX文件,内容如下:
% 目录后添加分页符 \ifdefined\if@toc@done \pagebreak \fi % 图表目录后添加分页符 \ifdefined\if@lof@done \pagebreak \fi % 如需给表格目录加分页符,取消以下注释 % \ifdefined\if@lot@done % \pagebreak % \fi
修改Quarto文档的YAML配置,通过include-after引入这个文件:
--- title: Untitled format: pdf: toc: true lof: true include-after: - file: after-toc-lof.tex author: Author date: last-modified --- # Title 1 Some text # Title 2 ## Title 2.1 ![This is a figure][example.png]
方案2:YAML内直接嵌入TeX代码
如果不想单独创建文件,可直接在YAML中写入TeX代码:
--- title: Untitled format: pdf: toc: true lof: true include-after: - text: | \ifdefined\if@toc@done \pagebreak \fi \ifdefined\if@lof@done \pagebreak \fi author: Author date: last-modified ---
原理说明
Quarto渲染PDF时,会在完成目录(TOC)、图表目录(LoF)等模块后设置专属标记(如\if@toc@done)。include-after参数的内容会在这些模块渲染完成后执行,因此能精准将分页符插入到每个目录的末尾,解决位置错误的问题。
内容的提问来源于stack exchange,提问作者A. Bohyn
相关产品推荐
相关产品推荐

