Дайте одному рисунку несколько подписей в выводе rmarkdown pdf_book

#r #latex #r-markdown #caption #subfigure

Вопрос:

Я пишу свою диссертацию с помощью книги. Я хочу включить список фигур, но я не хочу включать всю подпись к каждой фигуре. Моя мысль состояла в том, чтобы дать каждой фигуре одну подпись, которая появляется в lof ней, и вторую подпись, которая этого не делает. Я пытался сделать это с помощью fig.subcap , но это не дает второй подписи, я полагаю, потому что для этого нужна вторая цифра.

В приведенном ниже примере я хочу создать фигуру с подписью "My Main Caption. Here is more detail" , но в lof just есть: "My Main Caption" .

 ---
title: "Queries"
header-includes:
- usepackage{subfig}
output: 
  bookdown::pdf_book:
    toc: true
lof: yes
---


```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(ggplot2)


```{r irisfig, fig.cap='My Main Caption. Here is more detail'}
ggplot2::ggplot(iris, aes(Sepal.Length, Sepal.Width)) 
  geom_point()
 

Это не работает:

 ```{r irisfig2, fig.cap='My Main Caption.', fig.subcap= c('Here is more detail')}
ggplot2::ggplot(iris, aes(Sepal.Length, Sepal.Width)) 
  geom_point()
 

введите описание изображения здесь

Ответ №1:

Команда LaTeX caption предлагает необязательный аргумент для указания более короткого заголовка для toc в форме caption[Short caption]{Long caption} . Эта опция доступна fig.scap в заголовке:

 ```{r irisfig2, echo=F, fig.cap='My Main Caption PLUS More Detail', fig.scap='My Main Caption', out.extra=''}
ggplot2::ggplot(iris, aes(Sepal.Length, Sepal.Width)) 
  geom_point()
```
 

Что дает код latex:

 begin{figure}
includegraphics{test9_files/figure-latex/irisfig2-1} 
caption[My Main Caption]{My Main Caption PLUS More Detail}label{fig:irisfig2}
end{figure}