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

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

More than 3 years have passed since last update.

この記事の目的

私が大好きな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です。 

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