web-dev-qa-db-ja.com

Rmarkdownを使用してバッククォートで逐語的なインラインrコードを表示するにはどうすればよいですか?

Markdownでバックティックを2倍にすることで、`r 2+2`のようなバックティックを含むコードスタイルでテキストを簡単にレンダリングできます。しかし、それをどのように行うかRMarkdown?同様に、`t 2+2`を表示できますが、trに置き換えると、Rコード2+2が実行されます。

私がこれまでに見つけた唯一の方法は次のとおりです。

<p><code  class="r">`</code><code class="r">r 2+2`</code></p>

あまり便利ではありません。たぶん私はそれをより便利にするために新しいCSSを定義する必要がありますか?

31

これが私が使うトリックです。まず、\x60`であることに注意してください。

> cat('\x60', '\n')
` 

それからあなたは書く

`r '\x60r foo+bar\x60'`

これにより、マークダウン出力で`r foo+bar`が得られますが、HTML出力ではr foo+barになるため、2つ(またはそれ以上)のバックティックを使用して、マークダウンでバックティックを保護する必要があります。その後、あなたはこの毛玉で終わります:

`` `r '\x60r foo+bar\x60'` ``

あなた自身の解決策は良いですが、私はただ定義します

rinline <- function(code) {
  sprintf('``` `r %s` ```', code)
}

別のトリックについては、 この投稿 も参照してください。

27
Yihui Xie

results='asis'オプションについて学びました。
それで、さらに別の方法。楽しみと学習のために:-)

```{r, results='asis', echo=FALSE}
cat("`` `r 2+2` ``")
```
5
aquaraga

これが満足のいく発見です。最初に関数を定義します

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 
4

今これを見ている人は、ここでより最近の解決策をチェックしたいかもしれません: ニット評価なしでRmarkdownを埋め込む

基本的にあなたができること:

Some R code inline : `r knitr::inline_expr("2+2")`

上記の機能はknitrに直接追加されていると思いますが、関数を自分で定義する手間が省けます。

1
adunaic

Yihui Xie の解決策は、GithubリポジトリのREADME.mdファイルをレンダリングするときに、挿入されたコードに含まれる引用符を表示していませんでした。その場合、私はhtmlコードを使用しました:

_<code>&Grave;r foo(x)&Grave;</code>
_

&Grave;r foo(x)&Grave;をインラインで表示します。

0
Miguel Alvarez