循环中的knit_child - 变量为标题

时间:2017-05-09 15:01:44

标签: r knitr r-markdown

thisthis stackoverflow-questions之后,我尝试在循环中使用knit-child,其中包含一个变量定义的标题。

而不是变量(例如A,B,C)作为标题,我得到#仍然附加#(#A,#B,#C)

父:

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

```{r,include=FALSE}
library(knitr)
```


```{r,echo=FALSE}

titles<-LETTERS[1:3]

```

```{r,include=FALSE,echo=FALSE}
out = NULL
for (i in titles){
  out = c(out, knit_child('Child.Rmd'))
}
```


`r paste(out, collapse='\n')`

子:

---
title: "Untitled"

output: html_document
---


```{r,echo=FALSE,results='asis'}

cat("\n\n # ", i,"\n")

```

```{r,echo=FALSE,results='asis'}

cat("\n\n This text is about ", i,"\n")

```

输出:

enter image description here

虽然我更喜欢:

enter image description here

2 个答案:

答案 0 :(得分:3)

#字符仅表示标记中的标题,如果它是该行的第一个字符。

cat("\n\n # ", i,"\n")生成两个新行,然后是一个空格,然后 #。删除空格以解决问题:

cat("\n\n# ", i,"\n")

答案 1 :(得分:1)

考虑使用 pandoc.header 而不是 Cat

i = 1
pander::pandoc.header(i, level = 1)
> # 1

pander::pandoc.header(paste0("Subheading ", i), level = 3)
> ### Subheading 1