Лучемет RMarkdown создает заголовки слайдов и добавляет рисунки в цикле

#r #latex #r-markdown #beamer #presentation

Вопрос:

Я новичок в RMarkdown и Beamer. Я пытаюсь создать набор слайдов, где каждый слайд содержит JPG. Мне нужно просмотреть дюжину. Как мне настроить это в цикле?

Вот файл RMD:

 ---
title: 'slideshow'
output:
  beamer_presentation:
    theme: "AnnArbor"
---

# Introduction

## Blah

- Text
- Here
- Etc.

# Images

## pic_1

```{r echo=FALSE, out.width = '100%'}
knitr::include_graphics("../images/modelA_pic_1.jpg")
```

## pic_2

```{r echo=FALSE, out.width = '100%'}
knitr::include_graphics("../images/modelA_pic_2.jpg")
```

## pic_3

```{r echo=FALSE, out.width = '100%'}
knitr::include_graphics("../images/modelA_pic_3.jpg")
```

## pic_4

```{r echo=FALSE, out.width = '100%'}
knitr::include_graphics("../images/modelA_pic_4.jpg")
```
 

Я знаю, что могу поместить заголовки слайдов и пути к рисункам во фрейм данных, но я не уверен, как это сделать внутри RMarkdown и как просмотреть его, чтобы создать заголовки слайдов и вставить изображения.

 title <- c('pic_1', 'pic_2', 'pic_3', 'pic_4')
fpath <- c('modelA_pic_1.jpg', 'modelA_pic_2.jpg', 'modelA_pic_3.jpg', 'modelA_pic_4.jpg')
fpath <- paste0("../images/", fpath)
myfiles <- data.frame(title, fpath)
 

Обновлено на основе принятого ответа

Ниже приведено то, что я в конечном итоге использовал для своего Rmd. На этой странице объясняются основы xmpmulti пакета.

Для этой настройки мой RMD находится в одной папке; изображения находятся в одной папке вверх ( ../ ), а затем в папке с именем temp ( ../temp/ ). Изображения в этой папке называются test-1.png test-2.png , и т. Д.

 ---
title: 'slideshow'
output:
  beamer_presentation:
    theme: "AnnArbor"
header-includes:
  - usepackage{xmpmulti}
---

# Introduction

## Blah

- Text
- Here
- Etc.

```{=latex}
end{frame}
section{Images}
begin{frame}
frametitle<1>{picture 1}
frametitle<2>{picture 2}
centering
multiinclude[format=png,start=1,end=2,graphics={width=1textwidth}]{../temp/test}
end{frame}
begin{frame}
```

some test
 

Ответ №1:

Предполагая, что ваши изображения имеют имена pic-1.png и т. Д., Тогда у beamer есть автоматический способ перебирать изображения через xmpmulti пакет:

 ---
title: 'slideshow'
output:
  beamer_presentation:
    theme: "AnnArbor"
    keep_tex: true
header-includes:
  - usepackage{xmpmulti}
---

# Introduction

## Blah

- Text
- Here
- Etc.

```{=latex}
end{frame}
section{Images}
begin{frame}
frametitle<1>{picture 1}
frametitle<2>{picture 2}
frametitle<3>{picture 3}
centering
multiinclude[format=png,start=1,end=3,graphics={width=.6textwidth}]{pic}
end{frame}
begin{frame}
```

some test
 

Комментарии:

1. спасибо за ваш ответ, похоже, это должно сработать, но я получаю сообщение об ошибке. Я обновил ОП, чтобы отразить мою попытку с вашим ответом и полученной ошибкой

2. @a11 _ Ключ предназначен для математики — и только для математики. Вы не должны использовать его в своем фрейме без экранирования, например ../images/modelA_pic_1

3. Кавычки ничего не сделают с символами, которые не разрешены. С помощью экранированных подчеркиваний это отлично работает для меня: rstudio.cloud/project/2490816

4. Я еще раз изучил пакет xmpmulti и заставил его работать, спасибо за вашу помощь