降价表达式和结果可以在同一个块中交错吗?

sha*_*roz 8 r knitr r-markdown

R markdown中的一个简单块:

```{r}
1 + 2
3 + 4
```
Run Code Online (Sandbox Code Playgroud)

当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>
Run Code Online (Sandbox Code Playgroud)

我试图在一个块中输出表达式和结果

<pre><code class="r">
1 + 2
## 3
3 + 4
## 7
</code></pre>
Run Code Online (Sandbox Code Playgroud)

我试过修补块参数(例如结果和回声)无济于事.有没有办法实现这个目标?

注意:我可能会破解CSS ::first::last选择器,但我很好奇是否有内置选项.

Ram*_*ath 7

这可以使用hooks.在Rmd文档顶部添加以下代码块.它使用文件钩子,它在md文件的最后阶段运行knitting.下面定义的钩子标识后续代码块,其间没有任何文本块,并将其折叠为一个.

```{r setup, cache = F, echo = F}
knitr::knit_hooks$set(document = function(x){ 
  gsub("```\n*```r*\n*", "", x) 
})
```
Run Code Online (Sandbox Code Playgroud)

注意.设置cache = F此块非常重要,以便始终运行此代码.