web-dev-qa-db-ja.com

RMarkdownでチャンクの背景色を変更する

特定のコードチャンクを別の色(赤など)で強調表示して、それが悪い習慣であることを示したいと思います。 .Rnwを使用していた場合、チャンクオプションbackground = 'red'を追加して必要なものを取得できましたが、これは.Rmdで機能しないようです。私の推測では、カスタムcssスタイルシートを作成する必要があり(セレクターはどうなるかはわかりません)、おそらくカスタムフックも作成する必要があります。ドキュメント全体の全体的な変更ではなく、チャンクごとにしたいです。

31
AmeliaMN

コードチャンクヘッダーでclass.sourceオプションを使用して、R MarkdownにカスタムCSSを提供できます。これについては、次の投稿で説明しています。

RMarkdownの単一コードチャンクにCSSクラスを追加

例をまとめると、「badCode」というクラスを設定し、必要に応じて背景を変更するためのCSSを少し用意することができます。これが私の.Rmdです。

---
output: html_document
---

```{css}
.badCode {
background-color: red;
}
```

```{r mtcars}
summary(mtcars)
```

```{r cars, class.source="badCode"}
summary(cars)
```
29
Ian Lyttle

マークダウンはコードブロック外のHTMLをサポートしていることを忘れないでください。

コードチャンクを、必要なスタイルを設定したカスタムクラスを持つdivで囲みます。この例では、コードを青で、出力を水色でスタイル設定します

<style>
div.blue pre { background-color:lightblue; }
div.blue pre.r { background-color:blue; }
</style>

<div class = "blue">
```{r bluecars}
summary(cars)
```
</div>

```{r normal}
summary(cars)
```

enter image description here

27
Jim

このソリューションは少しハックされていますが、動作します。その要点は、2つのコードチャンクを作成し、{r}指定子を一意のクラス名に置き換えることです。次に、CSSコードを追加して各チャンクをスタイルします。

---
output: html_document
---

<style>
pre.bluecars {
    background-color: #aabbff !important;
}
pre.redcars {
    background-color: #ffbbbb !important;
}
</style>

## chunk-specific bg colors

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

- blue

```{bluecars}
summary(cars)
```

```{r, echo=FALSE}
summary(cars)
```

- normal

```{r}
summary(cars)
```

- red

```{redcars}
summary(cars)
```

```{r, echo=FALSE}
summary(cars)
```

screenshot

7
mkearney