Вставить Rmarkdown с Rmarkdown, без оценки knitr
Я хочу продемонстрировать, как писать RMarkdown, где демонстрация RMarkdown встроена в документ RMarkdown, используемый для создания материала курса. Внутри этого огороженного кодового блока я не хочу, чтобы knitr выполнял кусок.
Я хочу помещать что-то подобное в свой документ Rmarkdown на верхнем уровне и иметь все, что между внешними ограждениями печатается дословно в фиксированной ширине в выходном HTML-документе, вместо того, чтобы оценивать внутреннюю часть встроенного R-кода и встроенный код.
```
---
title: "RMarkdown teaching demo"
author: "whoever"
---
# Major heading
Here some text in your RMarkdown document. Here a code chunk:
```{r, eval=FALSE}
head(mtcars)
```
Now we're back into regular markdown in our embedded document.
Here inline code that I don't want executed either;
e.g. mean of mpg is `r mean(mtcars$mpg)`.
```
Я попробовал трюк с нулевой шириной в примере 65 для скрипа, но это не удается при компиляции в PDF (мне нужны как HTML, так и PDF).
Ответы
Ответ 1
Вот один из способов его достижения. Вы можете добавить `r ''`
перед заголовком блока, чтобы фрагмент кода не был распознан, и используйте knitr::inline_expr()
для генерации `r `
.
````
---
title: "RMarkdown teaching demo"
author: "whoever"
---
# Major heading
Here some text in your RMarkdown document. Here a code chunk:
`r ''````{r, eval=FALSE}
head(mtcars)
```
Now we're back into regular markdown in our embedded document.
Here inline code that I don't want executed either;
e.g. mean of mpg is `r knitr::inline_expr('mean(mtcars$mpg)')`.
````
Это будет проще, если вы просто сохраните документ примера R Markdown в отдельном файле и включите его в документ верхнего уровня через readLines()
, например.
````
`r paste(readLines('example.Rmd'), collapse = '\n')`
````
Чтобы включить три backticks в защищенном блоке кода, вам нужно больше трех обратных циклов. Вот почему я использую здесь четыре.
Ответ 2
Я делаю это с помощью функции cat
, которая работает как для вывода HTML, так и для PDF.
---
title: "RMarkdown teaching demo"
author: "whoever"
---
# Major heading
Here some text in your R Markdown document. Here a code chunk:
```{r, echo=FALSE, comment=""}
cat(c("```{r, eval=FALSE}",
"head(mtcars)",
"```"),
sep='\n')
```
Now we're back into regular Markdown in our embedded document.
Here inline code that I don't want executed either:
```{r, echo=FALSE, comment=""}
cat("The mean of mpg is `r mean(mtcars$mpg)`.")
```
Ответ 3
Не уверен относительно вывода в формате pdf, но окружающий ваш demo rmarkdown:
<pre>
...
</pre>
похоже, работает для html.