RMarkdown: измените метку рисунка и таблицы на S. раздел.рисунок как в формате PDF, так и в формате HTML

#r-markdown

Вопрос:

Я хочу сделать хорошие дополнительные материалы. Для этого мне нужно назвать и ссылаться на мои таблицы и рисунки как на рисунок S2.1 или таблицу S2.1, 2-номер раздела и 1 — номер таблицы или рисунка внутри раздела. Я нашел два способа сделать это с помощью RMarkdown для форматов PDF и HTML, но они, к сожалению, несовместимы:

  • Для PDF я добавил в YAML, в разделе header-includes: - renewcommand{thefigure}{Sthesection.arabic{figure}} . Это прекрасно работает, и я ссылаюсь на свои цифры в тексте, Figure @ref(fig:ChunkName) и это дает ожидаемый результат.
  • Для HTML я создал файл _bookdown.yml в той же папке, что и мой файл .Rmd. Он содержит:
 language:  label:  fig: "Figure S"  tab: "Table S"  

Это работает в том смысле, что подписи к таблицам и рисункам теперь соответствуют ожиданиям. Но когда я ссылаюсь на них, я не получаю S, потому что фактический номер рисунка все еще является разделом.фигура, а не соединение.фигура. Только метка подписи изменилась с рисунка на рисунок S. Поэтому теперь я должен ссылаться на свои рисунки как Figure S@ref(fig:ChunkName) . Но это несовместимо с решением PDF, которое, например, дало бы рисунок SS1.1!!

Я использую эту функцию rmarkdown::render для компиляции моего файла .Rmd.

Как я могу заставить оба формата сосуществовать? На данный момент я сохраняю оба решения, и это не так уж важно, если в HTML на цифры ссылаются без буквы S.

Спасибо 🙂