LoginSignup
4
5

More than 3 years have passed since last update.

RMarkdownでチェックボックスを使う

Last updated at Posted at 2018-07-04

※2019-07-30追記

コメント欄に@uriさんが書いてくれていますが、Pandoc 2.6でチェックボックスがサポートされたので、GitHubのリポジトリからtask-list.luaが削除されています。

現状だとRStudioにバンドルされているPandocは2.3.1なので、コメント欄にあるように古いリポジトリからダウンロードしてくるか、Pandocのバージョンを上げるかのいずれかの対応が必要になります。

mac & デスクトップ版RStudioの場合はbrew install pandocするだけでチェックボックスが使えるようになりました。

RMarkdownではチェックボックスが使えない

  • こういうやつが
  • 標準のR Markdownでは使えない

どうやらPandocの都合らしい。

軽く調べたところ使えるようにするのは割と簡単だった。

準備

Pandocのアップデート

チェックボックスを使用可能とするためには--lua-filterというオプションが使える必要があって、Pandocのバージョンがあまり古いと使えないことがある。手元のPandocはいつ入れたのか覚えがないんだけど、バージョンが1.11.1でこのオプションが使えなかったので、homebrewからbrew install pandocとして2.2.1を入れた。

$DATADIRの準備

pandocは標準では$DATADIR以下にある各種のファイルを参照する。デフォルトではこのディレクトリは

  • UNIX: $HOME/.pandoc
  • Windows: C:\Users\USERNAME\AppData\Roaming\pandoc

となっているので、作成しておく。また、luaファイルを配置するために$DATADIR/filtersディレクトリも作成しておく。

ちなみに、この手順を省略し、luaファイルへの絶対パスをオプションで指定しても良い。

task-list.luaのダウンロード

lua-filters/task-list.lua at master · pandoc/lua-filtersからtask-list.luaをダウンロードして$DATADIR/filters/task-list.luaに保存する。

チェックボックスを使う

準備ができたら.Rmdを書く。準備したluaフィルタを使うには、pandoc実行時に--lua-filter=task-list.luaのようなオプションを渡す必要がある。.Rmdファイルのyamlフロントマターで指定すると、次のようになる。

checkbox.Rmd
---
title: ".Rmdでチェックボックス"
output:
  html_document:
    pandoc_args: [
      '--lua-filter', 'task-list.lua'
    ]
---

- [ ] 空
- [x] checked

あとはこれをKnitすれば良い。次のような出力が得られるはずだ。

image.png

参考

4
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5