鶴見教育工学研究所

bookdown / blogdownで図のキャプションから図番号 "Figure X:" を消す

Tags:

たまには技術的なことも。このブログは、Rのパッケージであるblogdownで作成しています。R Markdownで書いて、プログラムや画像などもその書式で扱えます。

ただ、画像を以下のようなチャンクで挿入すると、自動的に図番号が Figure X: と付いてしまいます。

```{r eval=TRUE,echo=FALSE,message=FALSE,warning=FALSE,fig.align="center"}
knitr::include_graphics("filename")
```
図をキャプチャして貼り付けるよくわからないことをしていますが。

図をキャプチャして貼り付けるよくわからないことをしていますが。

技術的、アカデミックな内容なら、“Figure 1:” とかもまぁよいのですが、ミンティアには…。他にも、教材をR Markdownで作成し、bookdown::powerpoint_presentation2 で出力する際にも、あまり通し番号をつける必要もなく、毎回手で削除していました。ということで、どうにかして図番号を取り除けないか調べていました。

あまりニーズがないのか、けっこうな時間調べた結果、How to change the figure/table caption style in bookdown - R Markdown - RStudio CommunityというQAに辿り着きました。ここでは、“Figure X.” とコロンをピリオドにして、太字にしたい、といった質問に対して、以下のような回答がありました。

1
2
3
language:
  label:
    fig: !expr function(x) sprintf("**Figure %s.** ", x)

bookdownパッケージや、それを拡張したblogdownパッケージは、国際化に対応していて、ラベルを英語以外の言語に置き換えることができるそうです。ですから、例えばキャプションを「図X: 」としたければ、fig: '図' とすればよいです。一方、ここでは無名関数を定義して、それを評価しています。内部の細かい動作はわかりませんが、図番号を x で受け取って、Markdownの太字 ** で囲っています。また、bookdownパッケージは、これをファイルのYAMLに書いても反映されず、_bookdown.yml というファイル名でRmdファイルと同じフォルダーに置かないといけないそうです。

私がやりたいのは、ブログやPowerPoint教材ではそもそも “Figure X:” を表示したくないということなので、_bookdown.yml ファイルを以下のようにしました。

1
2
3
language:
  label:
    fig: !expr function(x) sprintf('')

とりあえず x は受け取らないといけないようなので1受け取りつつも、何も返さないようにしました。すると、意図した結果が得られました。上図の「図をキャプチャして…」が、その出力です。

やりたいことは実現できましたが、記事を書くたびに同じ内容の _bookdown.yml ファイルを手動でコピーするのはめんどうなので、何かうまい方法があればよいのですが。


  1. 引数なしだとエラーになりました。 ↩︎