在 R Markdown 中对书签进行编号

在 R Markdown 中对书签进行编号

我想对我使用 R Markdown 创建的 PDF 中的书签进行编号。当我将其添加- \usepackage[bookmarksnumbered]{hyperref}到 YAML 时,我收到以下错误消息: ! LaTeX Error: Option clash for package hyperref. 是否有解决方法或更好的解决方案?

这是我的完整 YAML:

---
title: "blabla"
author: "TobiSonne"
date: '`r paste("Stand:", format(Sys.Date(), "%d.%m.%Y"))`'
output: 
  pdf_document:
    number_sections: true
    toc: true
    toc_depth: 1
classoption: landscape
header-includes: 
  - \usepackage{float} 
  - \floatplacement{figure}{H}
  - \usepackage[ngerman]{babel}
  - \usepackage[bookmarksnumbered]{hyperref}
---

答案1

评论回答:)

  • 我不懂 YAML。
  • 我认为该hyperref包已经在您的场景/设置中加载,因此您无法使用自定义代码再次加载该包。
  • hyperref提供了一个在包已加载后添加/修改设置的命令:该命令称为\hypersetup

答案2

---
output: 
  pdf_document:
    number_sections: true
classoption: 
- bookmarksnumbered
---
 
# Foo

## Sub-foo

# Bah 

# Baz

编辑

我意识到有一票赞成删除此帖子,但答案显示了传递hyperref打包bookmarksnumbered和避免的正确方法LaTeX Error: Option clash for package hyperref

此外,IHMO 这种方式更适合直接在标题中包含 LaTeX 代码的 Rmarkdown 文档,因为 YAML 标题的主要目的是成为文档设置的友好界面,而尽可能不处理最终格式的代码。

而且,这种方法也适用于其他包的其他选项冲突,如xcolor,显然无法用来解决\hypersetup

从屏幕截图中可以看出,MWE 生成了一个使用 LaTeX 生成书签的 PDF,没有任何错误。那么,为什么要删除它呢?请解释一下。


在此处输入图片描述


相关内容