【问题标题】:Dynamic footnote referencing in rmarkdown / bookdownrmarkdown / bookdown中的动态脚注引用
【发布时间】:2022-01-20 05:52:52
【问题描述】:

我正在使用bookdown 将多个 .Rmd 文件合并到一个大文档中。各个文件都包含脚注,以^[1] 开头。这显然会导致最终文档中出现重复的脚注,bookdown 无法断言哪个引用属于哪个脚注。

因此,我想知道是否有一种方法可以在呈现文档时动态生成脚注,但我在 bookdown 文档中找不到与此相关的任何内容。

我有这个使用自定义函数的工作解决方案:

---
title: "Untitled"
output:
  html_document:
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)

footnote.nr <- 0

footnote.counter <- function(){
  footnote.nr <- footnote.nr + 1
  .GlobalEnv$footnote.nr <- footnote.nr
  return(footnote.nr)
}
```

Lorem ipsum.[^`r footnote.counter()`]

[^`r footnote.nr`]: Test

Lorem ipsum.[^`r footnote.counter()`]

[^`r footnote.nr`]: Test2

但是,这将导致我不得不修改整个文档,这与重新开始脚注编号一样多的体力劳动(尽管它可能不太容易出错)。还有其他解决方案吗?我也可以为每个单独的章节呈现脚注,这意味着每章中的第一个脚注以 1 开头。

【问题讨论】:

    标签: r-markdown bookdown


    【解决方案1】:

    另一种选择是使用 Rstudio 来编辑您的文件,并打开可视化编辑。如果这样做,它会对您的文本进行一些自动更改,包括为您的脚注提供唯一的名称。

    【讨论】:

    • 我在可视化编辑模式下写了一些文档,不认为这是真的。该模式将自动在文档中分配脚注编号,但在后台它仍然只是键入 [ ^1] 等等。不幸的是,不会使脚注动态化。
    • 我想,版本可能存在差异。我使用的是版本 1.4.1106,它肯定会在数字前面加上文件名。因此,在我刚刚打开的名为“classics.Rmd”的文件中,当我切换到可视化编辑模式时,脚注 [^1] 变成了 [^classics-1]。我假设一个项目中不能有两个同名的 Rmd 文件,这意味着所有脚注都有唯一的名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2018-02-17
    • 2019-07-28
    • 2021-11-28
    • 2020-08-09
    • 1970-01-01
    相关资源
    最近更新 更多