You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何强制RMarkdown输出PDF时让目录从新页面开始

RMarkdown编译PDF时在标题页与目录间插入分页符的实现方法

方案1:YAML全局配置(推荐)

通过在YAML头插入LaTeX钩子命令,自动在标题页生成后触发分页,无需修改正文内容:

---
title: "你的文档标题"
author: "作者名称"
date: "`r Sys.Date()`"
output: 
  pdf_document:
    toc: true # 开启自动生成目录
    toc_depth: 3 # 目录显示层级可自定义
header-includes:
  - \AtBeginDocument{\let\oldmaketitle\maketitle \renewcommand{\maketitle}{\oldmaketitle \newpage}}
---
  • 优点:全局生效,每次knit自动执行,不侵入正文内容
  • 适用场景:无特殊排版需求,仅需分隔标题页与目录的常规场景

方案2:手动控制分页+目录生成

如果需要更灵活的排版控制,可以关闭自动生成目录,手动指定分页和目录的插入位置:

  1. 首先在YAML中关闭自动目录:
---
title: "你的文档标题"
author: "作者名称"
date: "`r Sys.Date()`"
output: pdf_document
---
  1. 在正文最开头插入分页符与目录生成命令:
\newpage
\tableofcontents
% 若需要目录与正文之间也加分页,可额外再加一行 \newpage
  • 优点:可自定义分页位置,支持在目录前后插入其他内容(比如致谢、说明文档等)
  • 适用场景:有复杂排版需求的场景

注意:如果使用bookdown的pdf_book输出格式,上述两种方法均兼容,仅需将pdf_document替换为pdf_book即可。

内容的提问来源于stack exchange,提问作者SteveMcManaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:09:03