偶然見つけたので書いておく。
atusyさんのこの記事に関連して。
Rのchunk内ではattributesを渡せない…?
前回書いた内容はMarkdownのfenced codeなどのcode系の記法が行番号を扱えるかどうか?の確認であって、Rのコードブロックで取り扱えるものではなかった。これは、Rのコードを実行後、その生成物をMarkdownに埋め込む処理をR/knitr/rmarkdownが対応しているが、コードの表示を行う('echo=True`)ようにしても、チャンクオプションとして与えられるのはclassのみだからであった。
今まで調べた範囲では、チャンクオプションとしてclassは与えられるものの、startFrom=10のような属性(attr)は与えられないようである。
もう少しコードも含めて調べてみるが望みは薄い。
属性をclassとして無理やり渡すことは出来るが、markdownをPandocに与える前に対応する必要がある。具体的には.startFrom=10
というclassで与えられるので、これから.
をとればよい。これはluaのfilterで対応できる(class名に=があった場合、先頭の.を取る、という方法で)
もちろんこれはpost knitのタイミングで対応しても良い。いずれにしてもPandocに渡す前に対応する必要がある。
一方で、Pandocはインデントされたコードブロックに対して、クラスを与えることが出来る。下記の、
--indented-code-classes=CLASSES
を与えればよい。具体的には、
output: html_document: pandoc_args: - --indented-code-classes - numberLines highlight: tango
とすることで、インデントされたコードブロックにnumberLines
というclassが与えられ、このclassを持ったコードブロックはhighlightが有効になっている場合は行番号が付与される。
ということを見つけたのだが、肝心のRの実行コードに対する行番号付与(正確には行番号の先頭の数字の付与)はこの方法では対応できないのであった。
使う場面があるのか不明なのだが、見つけたのでメモしておく。
Enjoy!!