R markdown 中的一个简单 block :
```{r}
1 + 2
3 + 4
```
当knitr转换为html时会产生以下内容:
<pre><code class="r">1 + 2</code></pre>
<pre><code>## 3</code></pre>
<pre><code class="r">3 + 4</code></pre>
<pre><code>## 7</code></pre>
我正在尝试在一个 block 中输出表达式和结果
<pre><code class="r">
1 + 2
## 3
3 + 4
## 7
</code></pre>
我尝试修改 block 参数(例如结果和回显),但无济于事。有什么办法可以实现这一点吗?
注意:我可能可以使用 ::first
和 ::last
选择器来破解 CSS,但我很好奇是否有内置选项。
最佳答案
这可以使用钩子(Hook)
来完成。在 Rmd
文档的顶部添加以下代码块。它使用在 knitting
最后阶段在 md
文件上运行的文档钩子(Hook)。下面定义的钩子(Hook)识别后续代码块,中间没有任何文本 block ,并将其折叠成一个。
```{r setup, cache = F, echo = F}
knitr::knit_hooks$set(document = function(x){
gsub("```\n*```r*\n*", "", x)
})
```
注意。在此 block 中设置 cache = F
非常重要,以便此代码始终运行。
关于r - Markdown 表达式和结果可以交错在同一个 block 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21055183/