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

如何在R Markdown中同时设置浮动目录与开头目录?

当然可以同时拥有文档开头的静态目录和右侧的浮动目录啦!你之前报错,应该是不小心重复定义了toc参数(比如错误地在toc_float的子设置里又加了一遍toc: true)——其实在R Markdown的YAML配置里,toc和toc_float是html_document下两个独立的参数,合理设置根本不会冲突。

下面给你两种实用的实现方法,按需选就行:

方法一:自动生成双目录(推荐,适合长文档)

这个方法能让系统自动生成两个目录,只需要两步:

  1. 正确配置YAML元数据
    保留toc: true(负责生成开头的静态目录)和toc_float(负责右侧浮动目录),注意不要重复写toc参数:
    ---
    title: "TEST"
    author: brettljausn
    date: January 15, 2018
    output:
      html_document:
        toc: true  # 开启静态开头目录
        toc_float: # 开启右侧浮动目录
          toc_collapsed: true
          toc_depth: 3
        number_sections: true
        theme: lumen
    ---
    
  2. 添加自定义CSS让静态目录显示
    默认情况下,开启toc_float后,开头的静态目录会被主题CSS隐藏。我们只要加一小段CSS就能让它显示出来,还能顺便美化一下:
    .toc {
      display: block !important;
      margin: 2em 0;
      padding: 1em;
      border: 1px solid #eee;
      border-radius: 4px;
    }
    
    把这段代码块放在文档任意位置(建议末尾)就行,点击Knit后,你就能看到开头的静态目录和右侧的浮动目录同时存在啦!

方法二:手动编写静态目录(适合短文档)

如果你的文档内容不多,也可以手动写开头的目录:

  • 先把YAML里的toc: true删掉,保留toc_float的设置
  • 在文档最开头手动用Markdown列表写目录,比如:
    # 目录
    - [R Markdown](#r-markdown)
      - [Including Plots](#including-plots)
    
    这里的#r-markdown是标题的锚点,和你的章节标题对应(注意小写,空格换成短横线)。这种方式完全可控,但文档标题多了的话维护起来会有点麻烦。

内容的提问来源于stack exchange,提问作者f.lechleitner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:18:08