4

我想知道是否可以将显示目录的幻灯片添加到使用 xaringan 包创建的文档中?谢谢。

4

1 回答 1

2

更新

以下几行将为您提供自动大纲。不幸的是,我不知道如何在 RStudio 中自动重新加载 R 脚本文件。如果有人知道任何事情,请随时在以下问题中发表评论或回答。

该代码搜索所有 1 级标题和大纲标题。然后它只是将标题添加为列表并覆盖当前脚本。重新加载文件后,您有一个大纲。在此处输入图像描述

---

```{r, echo=FALSE}
require("magrittr")

file_name <- rstudioapi::getSourceEditorContext()[["path"]]

doc <- toc <- readLines(file_name)
tocc <- character()
for (i in 1:length(toc)) {
  if(substr(toc[i][1], 1, 2) == "# ") {
    toc[i] <- gsub("# ", "", toc[i], fixed = TRUE) %>% 
                gsub("#", "", ., fixed = TRUE)
    tocc <- append(tocc, toc[i])
  }
}

tocc <- paste("- ", tocc[-1])

row_outline <- which(doc == "# Outline")
row_body <- which(doc == "---")
row_body <- row_body[which(row_body > row_outline)][1]

doc <- c(doc[1:row_outline], "\n", tocc, "\n", doc[(row_body):length(doc)])


writeLines(doc, file_name)

```

# Outline

---

旧帖子

由于 Sébastien Rochette 的评论对我不起作用,我用 R 创建了一个非常肮脏的解决方案。我可以想到更好的解决方案,但这是一个非常快速的解决方案。我希望我会在不久的将来更新我的答案。

---

```{r, echo=FALSE}
require("magrittr")

toc <- readLines("presentation.Rmd")
tocc <- character()

for (i in 1:length(toc)) {
  if(substr(toc[i][1], 1, 2) == "# ") {
    toc[i] <- gsub("# ", "", toc[i], fixed = TRUE) %>% 
                gsub("#", "", ., fixed = TRUE) %>%
                paste0("     ", .)
    tocc <- append(tocc, toc[i])
  }
}

text <- paste(tocc[-1], "\n")
yy <- seq(.9, 0, length = length(text))
```

# Outline

```{r, echo = FALSE}
plot(x = rep(0.2, length(text)), y = yy * 1.035, 
     xlim = c(0, 1), ylim = c(-0.1, 1), xlab = "", ylab = "", axes = FALSE, 
     col = "#056EA7", type = "p", pch = 16)
text(x = 0.2, y = yy, labels = text, adj = 0, col = "black")
```

---

于 2019-07-24T20:23:54.937 回答