Markdown 将Rmd中的目录和附属列表分离为PDF文件

Markdown 将Rmd中的目录和附属列表分离为PDF文件,markdown,r-markdown,knitr,pandoc,tableofcontents,Markdown,R Markdown,Knitr,Pandoc,Tableofcontents,最近有人批评我在从R降价文件创建PDF时没有明确区分TOC和从属关系列表 我的YAML就是这个 --- title: "title" author: - Name author 1: email: paleomariomm@gmail.com institute: [cenieh, ucl1, ppex] correspondence: true - Name author 2: institute: [ubu] institute:

最近有人批评我在从R降价文件创建PDF时没有明确区分TOC和从属关系列表

我的YAML就是这个

---
title: "title"
author:
  - Name author 1:
      email: paleomariomm@gmail.com
      institute: [cenieh, ucl1, ppex]
      correspondence: true
  - Name author 2:
      institute: [ubu]
institute:
  - cenieh: Centro Nacional de Investigación sobre la Evolución Humana (CENIEH), Paseo Sierra de Atapuerca 3, 09002, Burgos, Spain
  - ucl1: Department of Anthropology, University College London, London, WC1H 0BW, UK
  - ppex: Equipo Primeros Pobladores de Extremadura, Casa de Cultura Rodríguez Moñino, Cáceres, Spain
  - ubu: Laboratorio de Evolución Humana, Universidad de Burgos, Edificio I+D+i, Burgos, Spain
output: 
  pdf_document: 
    number_sections: yes
    pandoc_args:
      - '--lua-filter=lua/scholarly-metadata.lua'
      - '--lua-filter=lua/author-info-blocks.lua'
    toc: yes
    toc_depth: 4
---
通过将此Rmd文件转换为PDF,我看到:

如您所知,TOC和附属机构列表之间可能会出现一些潜在的误解,因为附属机构列表就在目录的下方

我想把它们清楚地分开。我想到了不同的可能性:

  • 引入一条分隔两个部分的线
  • 在从属关系列表的顶部添加一个小标题,称为从属关系
  • 颠倒顺序,将从属关系列表放在作者的正下方

我一直在处理这些情况,但没有成功。有没有关于如何实现其中任何一项的想法?

附属机构列表将作为主体的一部分添加。Pandoc将目录作为正文的第一项插入,这就是为什么附属机构出现在TOC之后。最好的解决方法是禁用自动TOC插入,并手动调用LaTeX命令

output: 
  pdf_document: 
    number_sections: yes
    pandoc_args:
      - '--lua-filter=lua/scholarly-metadata.lua'
      - '--lua-filter=lua/author-info-blocks.lua'
    toc: no
然后加上

```{=latex}
\setcounter{tocdepth}{4}
\tableofcontents
```

在文档的顶部。Lua过滤器会将附属关系部分推到目录上方的顶部,pandoc不会更改顺序。

正如您所注意到的,一个解决方案是在TOC之后添加一些空间。您可以通过添加

header-includes:
    - \usepackage{xpatch}
    - \xapptocmd{\tableofcontents}{\vspace{2em}}{}{}

到您的YAML标题。

这些lua过滤器来自哪里?它们在我的系统中是未知的。它们都来自GitHub:安装了这些lua过滤器后,我得到错误
[字符串“lua/author info blocks.lua”]:168:尝试调用一个nil值(方法“map”)
,使用pandoc版本2.3.1。顺便说一句,你有没有看过像
article
pinp
这样的软件包提供的格式?你有没有将它们保存在lua文件夹中?@RalfStubner,这可能是由较旧的pandoc版本引起的。看见