如何使用Rmarkdown显示带有倒勾号的逐字内联r代码



通过将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>&grave;r foo(x)&grave;</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` ``")
```

最新更新