如何控制 R Markdown(PDF 输出)中目录的位置?

Posted

技术标签:

【中文标题】如何控制 R Markdown(PDF 输出)中目录的位置?【英文标题】:How can I control the location of the table of contents in R Markdown (PDF output)? 【发布时间】:2021-12-09 17:06:01 【问题描述】:

YAML 标头:

---
subtitle: "subtitle"
title: "title"
output: 
  pdf_document:
    toc: true
    toc_depth: 2
    number_sections: true
---

这会将目录放在文档的最开头,但我希望将它放在前两页之后。

有人知道如何管理吗?我宁愿不要使用太多 LaTeX。

【问题讨论】:

我认为您需要使用custom LaTeX template。我猜您想将 default.latex 的第 477–503 行移到您要添加的两页后面。但是:如果这两个页面应该是什么内容?一些静态内容(可能很简单)或 RMarkdown 输出的前两页(即 Pandoc 的 $body$)?我不知道您如何拆分后者... 前两页是带有标题的正面,第二页是版本详情。我作为解决方案提供的只是为部分提供不同的 Rmd 文档,然后将它们连接在一起(PDF 输出) - 不理想,但它是一些东西 【参考方案1】:

如果前两页应该包含静态内容(不是在 R Markdown 文档的正文中生成的),则可以通过对 Pandoc 使用的 LaTeX 模板进行少量修改来实现将目录移动到第 3 页。

如The Cookbook 中所述,默认的 LaTeX 模板是 this (latest version)。

    下载该文件并将其保存在您的 RMD 文件的目录中。在下面的示例中,我将文件命名为 toc-at-page3-template.tex

    编辑模板:例如在第476行之后(即$if(toc)$之前),添加

     \begincenter
     Custom Stuff
     \endcenter
    
     \clearpage
    
     \begincenter
     More Custom Stuff
     \endcenter
    
     \clearpage
    

    在您的 RMD 文件中,启用自定义模板:


     output:
       pdf_document:
         toc: true
         template: toc-at-page3-template.tex
     ---
    
     Foo.
    

输出: (点击缩略图放大)

【讨论】:

以上是关于如何控制 R Markdown(PDF 输出)中目录的位置?的主要内容,如果未能解决你的问题,请参考以下文章

在 for 循环 r markdown 中包含两个变量之间的空格(pdf 输出)

rmarkdown输出pdf不显示标题

R markdown:我可以将pdf作为图像插入到r markdown文件中吗?

如何将 R Markdown 转换为 PDF?

如何在python中用markdown语言写一份报告并输出成PDF格式

Rstudio怎么生成html文件 Rstudio生成html报告方法介绍