xaringan幻灯片上的目录?

时间:2018-04-12 12:58:09

标签: xaringan

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

1 个答案:

答案 0 :(得分:1)

更新

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

该代码搜索所有1级标题和Outline标题。然后,它仅将标题添加为列表,并覆盖当前脚本。重新加载文件后,您将获得一个轮廓。enter image description here

---

```{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ébastienRochette的评论对我不起作用,因此我使用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")
```

---