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

如何在基于bookdown的R Markdown文档中添加多个目录?

bookdown插入双目录实现方案

第一步:配置全文总目录

首先在项目根目录的_output.yml中开启全局目录配置,即可生成覆盖全文的总目录,默认会渲染在文档开头位置。示例配置如下:

# 以gitbook(HTML)输出为例
bookdown::gitbook:
  toc: true
  toc_depth: 3 # 可自定义目录展示的章节深度
# 若使用PDF输出,配置逻辑一致
bookdown::pdf_book:
  toc: true
  toc_depth: 3

第二步:生成末尾附录专属目录

首先将所有附录章节统一放在# (APPENDIX) 附录 {-}标记之后,bookdown会自动为所有附录章节打上专属标识,方便筛选。根据输出格式选择对应实现方案:

  • HTML格式输出
    在文档末尾需要放置附录目录的位置,插入如下带results='asis'属性的R代码块,即可动态生成仅包含附录内容的目录:
# 筛选所有附录章节
all_chaps <- bookdown:::get_chapters()
appendix_list <- all_chaps[grepl("^appendix-", names(all_chaps))]
# 输出附录目录结构
cat("## 附录目录\n")
for (idx in seq_along(appendix_list)) {
  chap_title <- appendix_list[[idx]]$title
  chap_href <- paste0("#", names(appendix_list)[idx])
  cat(sprintf("- [%s](%s)\n", chap_title, chap_href))
}
  • PDF格式输出
    首先在项目的LaTeX前置文件preamble.tex中引入局部目录依赖包:
\usepackage{etoc}

之后在文档末尾需要放置附录目录的位置,插入如下LaTeX代码即可:

% 生成附录专属局部目录
\etocsettocstyle{\section*{附录目录}}{}
\etocsetnexttocdepth{3} % 和全局目录深度保持一致即可,可自定义
\localtableofcontents
\etocreset % 重置toc配置,避免影响后续内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:18:00