【问题标题】:How to get section name in an .rmd file?如何在 .rmd 文件中获取部分名称?
【发布时间】:2020-12-21 22:00:35
【问题描述】:

是否可以将节的名称捕获为变量?

我有一个 .rmd 文档,其中每个部分都遵循相同的格式,例如,

# The Beginning


### What we know about The Beginning


### What we need to learn about The Beginning

...

我想写一些更笼统的东西,比如

# The Beginning


### What we know about `r section_name`


### What we need to learn about `r section_name`

有没有办法捕获当前的部分名称?

【问题讨论】:

  • 好问题,但我认为您唯一的方法是使用`r somevar`,正如您在此处所暗示的那样。也就是说,在# 标题(以及每个后续标题)之前,分配hdg1 <- "The Beginning"。我真的很想知道是否有更方便的方法来做到这一点!
  • 是的,我认为可能是这种情况,但后来我在研究这个问题时了解到rmarkdown::metadata,所以我想我会碰碰运气
  • 也许this 可以提供帮助

标签: r r-markdown knitr


【解决方案1】:

如果您将块命名为“开始”,则可以在整个 Rmd 中使用 knitr::all_labels() 引用它,例如

---
title: "Test"
author: "Jared_Mamrot"
date: "22/12/2020"
output: html_document
---

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

# The Beginning
```{r The Beginning}
summary(cars)
```

### What we know about `r knitr::all_labels()[2]`
```{r 3rd_chunk}
# Refer to the 'label' inside the chunk
knitr::all_labels()[2]
```

### What we need to learn about `r knitr::all_labels()[2]`
```{r 4th_chunk}
cars %>% 
  ggplot(aes(x = speed, y = dist)) +
  geom_point() +
  ggtitle(label = knitr::all_labels()[2]) +
  theme_bw()
```

当我编织 Rmd 时,knitr::all_labels()[2] 被替换为“开始”

编辑: 重新阅读您的问题后,我意识到这不是一个完整的答案。也许您可以以某种方式调整this function for printing a Table of Contents 以获取节标题并在针织文档中使用它。

【讨论】:

    猜你喜欢
    • 2019-10-04
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 2015-03-22
    • 2012-11-04
    • 1970-01-01
    相关资源
    最近更新 更多