18
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RMarkdownで目次と見出しの通し番号を自動生成

Last updated at Posted at 2015-12-02

この記事の目的

私が大好きなRMarkdownについて、Tipsを集中的に連載しようという思いつきの企画です。あと自分の中で進めている別企画のメモという位置づけでもあります。なので大した中身はありません

R Markdownとは

Markdown記法をベースに、チャンクという形でRのコードを記述して評価・出力することができるものです。RStudioのクイックリファレンスでは以下のように説明してあります:

R Markdown is an easy-to-write plain text format for creating dynamic documents and reports.

注意事項

この記事ではRStudioでの利用を前提にしています。1

目次の自動生成

ある程度まとまったドキュメントを作成する場合、冒頭に見出しがあるとわかりやすいですね。そしてリンクも自動でついてくれるとなおいいですね。

Rmarkdown(というかpandoc)には、これを自動で生成してくれる機能がはいっています。Rmdファイルを作成した時に自動で生成される冒頭部分2に、以下のように設定してください:

---
title: "タイトル"
author: "kazutan"
output: 
  html_document:
    toc: true
---

このoutput:以降の部分を設定すると、toc(table of contents)が作成されます。なお、見出しにも深さのレベル(h1,h2,...)がありますが、「どの深さまで取り込むか」も指定できます3。例えば「深さレベル3まで(h1とh2とh3まで)」としたいときは、以下のように指定します:

---
title: "タイトル"
author: "kazutan"
output: 
  html_document:
    toc: true
    toc_depth: 3
---

これで深さ3まで見出しに取り込みます。Rmd(md)だと、# hoge## hogeho### hogehogeまでですね。

見出しに通し番号

ある程度まとまったドキュメントを作成する場合、見出しに通し番号を付けたほうがわかりやすくなります。ですがこれを手動で振っているとミスしたり面倒だったりします。

RMarkdown(というかpandoc)には自動でこれを割り当ててくれる便利な機能がはいってます。Rmdファイルを作成した時に自動で生成される冒頭部分に、以下のように設定してください。

---
title: "タイトル"
author: "kazutan"
output:
  html_document:
    number_section: true
---

これで自動的に見出しに通し番号が振られます。また見出しの深さレベルも自動的に評価して判断します。

おそらく両方を組み合わせて設定することが多いかと思います。ぜひ使ってみてください。

Enjoy!

  1. rmarkdown::render()で実行すればそこまで気にしなくてもいい気もしますが、一応前提にします。

  2. ここはyaml記法となるので、書き方に注意してください。特に左側の階段上になるスペースと:がつくかどうかに注意してください。

  3. デフォルト値は2です。

18
18
0

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
18
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?