戯言日記

Rの話だと思ったら唐突にサバゲーが混じってくる何か。

bookdownで図の相互参照が機能しない

wordで解析結果を報告するとかいう魔の業務が降ってきたので、cookbookを参考に図の相互参照を使おうとしたのだが機能してくれなかった。


gedevan-aleksizde.github.io


  • bookdown::html_document2: へは変更済み
  • チャンクのラベルも設定してある
  • 参照タイプ(figやtabなど)も問題なし

最終的には大元であるbookdownのリファレンスを読んだら解決した。


bookdown.org


If you want to cross-reference figures or tables generated from a code chunk, please make sure the chunk label only contains alphanumeric characters (a-z, A-Z, 0-9), slashes (/), or dashes (-).
意訳:コードチャンクから相互参照の図表を作る時、チャンクラベルには「アルファベット」「数字」「/」「-(ハイフン)」だけを使ってください。


確認するとチャンクラベルにがっつり「_(アンダーハイフン)」が入っていたので、これを削ったら動いた。
cookbookをざっと眺めた感じだとこの辺の記載がなさそうなので、相互参照でハマるとちょっと厄介かも1


Enjoy!


  1. 現在開発が進んでいる「Quarto」(RMarkdownの強化版みたいなもの)だと相互参照が標準装備になっているが、こちらもチャンクラベルに縛りがある(「@fig-dat1」みたいな書き方)ので、いずれにせよチャンクラベルはシンプルに書く癖をつけておいた方が良さそう。