Help us understand the problem. What is going on with this article?

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

※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

参考

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away