R Markdownで日本語PDFレポート作成!図番号の参照方法がわからず悩み、ようやく解決した
R Markdownで日本語PDFを出力できるようにして、レポートを作成していた。
その中で、図番号の参照方法がわからず苦戦してしまった。図番号の参照とは、このようなものだ。

画像をレポートに貼り付け、キャプションを設定したら、自動的に図番号が振られ、「Figure 1:キャプション」のように表記される。
その「1」という数字はPDF化するたびに作られるのだが、この数字をどうやって本文中で参照すればよいかわからなかったのだ。
Webを巡って見つかるのは、bookdownでの参照方法ばかりで、こうやって参照するものだ。
\@ref(type:label)
「R Markdown クックブック」に乗っている。
ただ、このやり方だと、通常のPDFを出力したい場合だとうまくいかない。おそらく、HTMLならいいんだけど、PDFだとPandocへの指示としてうまくいってないんじゃないかという気がしている。
これがどうすればいいかわからず数日悩んだんだけど、ようやく解決することができた。ラベルの付け方と、参照の仕方が、このセットのときにうまくいったのだ。
{#fig:jipline}
Figure \ref{fig:jipline} のように、快適な旅をお届けすることができるだろう。
まず、図を貼り付けるときに、「{#fig:figure-label}」をつけてやる。これが参照する際のラベルになる。
そして、その図を参照する文書のところで、「\ref{fig:figure-label}」としてやる。これでラベルをつけた図の番号を表示することができる。
わかってしまえば大したことではないのだが、括弧やラベルの書き方などが少しでも違ったらうまく動かないのだから悩んだものだ。
こういうのもバージョンが変わるとどうなるかわからないから、主要なライブラリのバージョンも書き残しておく。
- R環境
- R version 4.5.0
- tinytex 0.57
- rmarkdown 2.29
- TeX環境
- texlive/noble 2023.20240207-1
なお、R StudioはDockerコンテナで稼働中のものを使っている。コンテナのベースはUbuntu Linuxで、その上にR Studioが構築されている。