/
目录通过以可视化层级展示指向各个标题的链接,为你的文档提供快速概览。读者可以点击任意条目,直接跳转到对应小节。你现在就可以在右侧边栏看到一份目录,如果你正在使用移动设备,它则会出现在页面末尾。
你可以通过 .tableofcontents 文档 ↗ 函数来显示目录。
该函数接受以下可选参数:
| 参数 | 说明 | 可接受值 | 默认值 |
|---|---|---|---|
title | 位于目录之前的标题。如果未设置,则会自动本地化。 | 行内内容 | 若 .doclang 的区域受支持,则自动本地化(例如英文下为 Table of Contents) |
maxdepth | 要显示的标题最大层级。例如,maxdepth:{2} 会收集 # 与 ## 标题,但不包括 ### 或更深的标题。 | 整数 | 3 |
.tableofcontents maxdepth:{2}
## A
...
### A.A
...
### A.B
...
## B
...
## C
### C.A
#### C.A.A
...
目录会适应不同的文档类型:
paged 与 slides 文档中,每个条目还会显示对应的页码。slides 文档中,目录具有受限的高度,并在内容溢出时变为可垂直滚动。布局主题 会极大地影响目录的外观。

有时你希望某些标题出现在文档中,却不出现在目录里。装饰性标题正是为此而生:它们不被编号,且被排除在目录之外。
要将一个标题标记为装饰性,只需在最后一个 # 符号后追加 !:
##! A decorative heading你可以通过 .numbering 函数自定义目录中标题的编号方式。更多信息请参阅编号 。
位于目录之前的标题,可以通过以下参数进行自定义:
| 参数 | 说明 | 可接受值 | 默认值 |
|---|---|---|---|
headingdepth | 位于目录之前的标题层级。 | 整数 | 取决于文档类型(大多数情况下为 1,对于 docs 为 3) |
breakpage | 该标题是否触发自动分页。 | 布尔值 | yes |
numberheading | 该标题是否应被编号 ,并在文档层级中跟踪其位置。 | 布尔值 | no |
indexheading | 该标题是否应被纳入目录本身。会隐式启用 numberheading。 | 布尔值 | no |
focus 参数会高亮目录中的某个特定条目,将注意力吸引到当前小节。
在之前的示例中添加 focus:{A.B} 会高亮该条目:
.tableofcontents maxdepth:{2} focus:{A.B}
这个功能在演示中尤为有用,你可能希望在每一章开头显示一个迷你目录,以引导观众。
对于幻灯片演示,你可以将 focus 与**标记(markers)**结合,创建优雅的章节导航。.marker 函数创建一个不可见的 0 级标题,这是标准的 # 语法通常无法做到的。
下面是一个适用于章节幻灯片的实际模式:
.function {chapter}
name:
.tableofcontents maxdepth:{0} focus:{.name}
.marker {.name}随后你可以在每个小节的开头用 .chapter {My chapter} 调用它。设置 maxdepth:{0} 可确保目录中只出现标记,从而创建一个干净的章节级概览,而不是显示所有标题。