revealjs_presentationでコードブロックに行番号を付与する

by
カテゴリ:
タグ:

R Markdownでは、コードブロックにnumberLinesクラスを与えると、Pandocが行番号を付与してくれます。例えば以下のコードブロックをblogdownでレンダリングすると、ちゃんと行番号が付与されます1

```{.python .numberLines}
import pandas as pd
```
import pandas as pd

チャンクに行番号をつけるにはclass.sourceなどを指定します。

```{r, class.source='numberLines', class.output='numberLines'}
rnrom(10)
```
rnorm(5)
## [1] -2.0034884 -0.1483963  0.8585590 -0.0488948  0.1544398

しかし、revealjsではこれらを実行しても行番号が表示されません。これは、CSSでコードブロックの外にはみ出た文字列が非表示にされているため。というわけで、以下のCSSチャンクをRmdファイルに仕込むか、cssファイルに記述してYAMLフロントマターから取り込めばOK。

```{css, echo = FALSE}
.reveal pre code {
  overflow: visible
}
```

Enjoy!


  1. html_documentやその派生ではYAMLフロントマターにてhighlightdefault以外の値を与える必要があります。例えば

    output:
      html_document:
        highlight: pygments
    ↩︎