如何在rmarkdown中更改目录的位置?

时间:2014-08-30 23:57:05

标签: r knitr r-markdown

使用RStudio和knitr,我看到我可以在我的.rmd文件中添加带有以下代码的TOC。

----------------
output: 
  html_document:
    toc: yes
-----------------

但是,这会将TOC置于HTML文档的最开头。有没有办法在页面上移动TOC?在介绍段落后说?

我尝试使用__TOC____FORCETOC__,但它没有改变TOC的位置。

2 个答案:

答案 0 :(得分:10)

TOC的位置在R Markdown默认HTML模板中得到修复。如果要更改其在文档中的位置,则需要修改模板:

  1. 制作R Markdown HTML模板的副本以用作起点。您可以通过运行此R命令找到它:system.file("rmd/h/default.html", package="rmarkdown")
  2. $toc部分移至您希望显示目录的位置。
  3. 将修改后的模板保存在与您正在呈现的文档相同的文件夹中,例如lowertitle.html
  4. template: lowertitle.html添加到html_document设置。
  5. 从模板的角度来看,文档的所有内容都是原子单元,因此可能需要将任何想要在TOC之前显示的内容放在模板本身中。

答案 1 :(得分:1)

您可以使用JQuery将TOC重定位到文件中的任意位置。只需在希望TOC的位置插入一个标题,然后使用通过渲染R Markdown文件生成的ID。例如:

<script>
  // Move TOC to the Table of Contents heading (with id "table-of-contents")
  $(function() {
    $( "#TOC" ).insertAfter( $( "#table-of-contents" ) );
  });
</script>

R Markdown文件中某处名为“目录”的标题将收到id“目录”。 TOC的ID为“ TOC”。上面的Jquery位选择了该目录,并将其插入“目录”标题之后,无论它位于文档中的何处。