Подтвердить что ты не робот

Как исправить разрывы столбцов в презентации Rmarkdown/ioslides

Используя то, что в настоящее время является версией RStudio (0.98.758), я люблю, что могу создать презентацию ioslides в rmarkdown.

rmarkdown docs для этого формата дают описание того, как сделать двухстолбцовый слайд, и он содержит предупреждение о том, что:

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

Но я, похоже, не могу сделать изображение достаточно большим! Текст по-прежнему удаляется с нижней части первого столбца. В приведенной ниже презентации я хотел бы сравнить базовую гистограмму с гистограммой qplot бок о бок в столбцах с несколькими комментариями и кодом. Я включил код для относительно короткого примера с некоторыми основными попытками решения. Если вы вяжете это, я думаю, что проблема будет очевидна. (Обратите внимание, что вам понадобится предварительная версия RStudio.)

---
title: "Two Column"
author: "Some guy on Stack Overflow"
date: "Friday, April 04, 2014"
output: ioslides_presentation
---

## Two-Column Attempt {.smaller}

<div class="columns-2">
Base graphics can be quick...

```{r, fig.width = 3, fig.height = 4}
par_opts <- names(par())
    hist(nchar(par_opts),
         breaks = seq(1.5, 9.5, by = 1))
```

But `ggplot2` can be quick too:

```{r, fig.width = 2.5, fig.height = 2.5}
require(ggplot2, quietly = T)
qplot(factor(nchar(par_opts)))
```
</div>

## Two-Column Attempt: Taller Hist {.smaller}

<div class="columns-2">
Base graphics can be quick...

```{r, fig.width = 3, fig.height = 6}
par_opts <- names(par())
    hist(nchar(par_opts),
         breaks = seq(1.5, 9.5, by = 1))
```

But `ggplot2` can be quick too:

```{r, fig.width = 2.5, fig.height = 2.5}
require(ggplot2, quietly = T)
qplot(factor(nchar(par_opts)))
```
</div>

## Two-Column Attempt: Extra div {.smaller}

<div class="columns-2">

Base graphics can be quick...

```{r, fig.width = 3, fig.height = 4}
par_opts <- names(par())
    hist(nchar(par_opts),
         breaks = seq(1.5, 9.5, by = 1))
```

<div>
...
</div>

But `ggplot2` can be quick too:

```{r, fig.width = 2.5, fig.height = 2.5}
require(ggplot2, quietly = T)
qplot(factor(nchar(par_opts)))
```
</div>

Здесь изображение четвертого слайда, вы можете видеть, что текст обрезается в нижней части левого столбца, а в правом столбце - много места.

cut off

4b9b3361

Ответ 1

Я тоже царапаю себе голову.

Вы можете избежать использования разделов и использовать {.columns-2} как атрибут заголовка.

Для изображений я устанавливаю относительно большой размер по умолчанию в yaml с помощью fig_height и fig_width. Затем, используя атрибут out.width в блоке, я управляю размером вывода (350px, похоже, хорошо работает в этом макете)

---
title: "Two Column"
author: "Some guy on Stack Overflow"
date: "Friday, April 04, 2014"
output:
  ioslides_presentation:
    fig_height: 7
    fig_width: 7
---

## Two-Column Attempt {.smaller .columns-2}

Base graphics can be quick...

```{r, out.width =  '350px'}
par_opts <- names(par())
    hist(nchar(par_opts),
         breaks = seq(1.5, 9.5, by = 1))
```


But `ggplot2` can be quick too:

```{r, out.width =  '350px'}
require(ggplot2, quietly = T)
qplot(factor(nchar(par_opts)))
```