我想对我使用 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,没有任何错误。那么,为什么要删除它呢?请解释一下。