前から私も挑戦しては挫折していたことに再挑戦しました.
“Pandoc User’s Guide” と “Rmarkdown Definitive Guide” と Yi Hui のブログ記事 “Chunk options and package options” に繰り返し目を通して来たのがようやく実り,答えを得ました,
確認したところ html_document
と pdf_document
でうまく動くようです.
え,何か忘れてるって?.
ああ,blogdown::html_page
では残念ながらうまくいきませんでした.
従って英語による詳細版をご覧下さい.
英語版のソースと出力例は GitHub の atusy/rmd-line-num にあります.
簡単なやり方の紹介
以下の内容の Rmd ファイルを作成し <!-- ここから先は自由に記述 -->
以降を自由に記述してくれれば,チャンクとその出力が番号付けできるはずだ.番号をクリックして行ごとのリンクを取得することもできる1.
---
output:
html_document:
# highlight には defailt 以外を指定
# help(rmarkdown::html_document) 参照
highlight: pygment
pdf_document: default
---
```{r "setup"}
knitr::opts_chunk$set(
# ソースを番号付けする
class.source = "numberLines lineAnchors",
# 出力を番号付けする
class.output = "numberLines lineAnchors chunkout")
)
# 他に setup チャンクでやっておきたいことがあれば記述
```
```{css}
/* html用 */
/* 出力の背景が灰色になってしまうので,白に直す */
/* pdf の場合どうしたらいいかは知らない */
div.sourceCode pre.chunkout {
background: white;
}
```
<!-- ここから先は自由に記述 -->
Enjoy!
@niszet さんに色々教えてもらいました
lineAnchors
クラスを足すと行番号がクリッカブルになる (https://twitter.com/niszet0/status/1118837863200591872).highlight
にはpygment
以外も使える (https://niszet.hatenablog.com/entry/2019/04/18/194246).