通过将Markdown中的backticks加倍,可以很容易地以代码样式呈现一些文本,包括backticks,例如:`r 2+2`
。但是如何使用RMarkdown?同样,我们可以显示`t 2+2`
,但用r
替换t
会执行R代码2+2
。
到目前为止,我找到的唯一方法是:
<p><code class="r">`</code><code class="r">r 2+2`</code></p>
不是很方便。也许我应该定义一个新的css来更方便地完成这项工作?
下面是我使用的一个技巧。首先,注意x60
是`
:
> cat('x60', 'n')
`
然后你写
`r 'x60r foo+barx60'`
这将在markdown输出中为您提供`r foo+bar`
,但在HTML输出中将变为r foo+bar
,因此您需要使用两个(或多个)backtick来保护markdown中的backtick。然后你就得到了这个发球:
`` `r 'x60r foo+barx60'` ``
你自己的解决方案是好的,但我只是定义
rinline <- function(code) {
sprintf('``` `r %s` ```', code)
}
另一个技巧请看这篇文章。
对于现在关注此问题的任何人,您可能希望在此处查看最新的解决方案:嵌入Rmarkdown,无需编织机评估
本质上你可以做:
Some R code inline : `r knitr::inline_expr("2+2")`
我猜上面描述的功能已经直接添加到了knifer中,但它节省了我们自己定义功能的时间。
Xie的解决方案在为Github存储库呈现README.md文件时,没有在插入的代码中显示封闭引号。在这种情况下,我使用了html代码:
<code>`r foo(x)`</code>
它在线显示`r foo(x)`
。
这是一个令人满意的发现。首先定义功能
rinline <- function(code){
html <- '<code class="r">``` `r CODE` ```</code>'
sub("CODE", code, html)
}
在一个看不见的块中。然后您可以通过键入:来显示`r 2+2`
Some R code inline : `r rinline("2+2")` - nice
我刚刚了解了results='asis'
选项
所以,换一种方式;为了娱乐和学习:-)
```{r, results='asis', echo=FALSE}
cat("`` `r 2+2` ``")
```