Knitr/Rmd: разрыв страницы после n строк /n расстояния

Позвольте мне предостеречь, сказав, что это может быть лучше подходит как вопрос html/css, но (а) я не слишком хорошо знаком с этими методами и (б) я хотел сохранить все это в семье ( R), если возможно.

Я хотел бы использовать knitr для написания отчетов академического стиля (Руководства типа APA 6) с использованием Rmarkdown. У меня есть большинство аспектов, но не разрыв страницы. Я могу вручную установить разрывы страниц с чем-то вроде:

# report

```{r setup, include=FALSE}
# set global chunk options
opts_chunk$set(cache=TRUE)
```
------
## Page 1

```{r plot1}
plot(1:10, 1:10)
```
------
## Page 2

В следующем .Rmd я хотел бы программно установить эти разрывы после n строк /n расстояния. Так что скажем, после 8 дюймов или 140 строк.

# report

```{r setup, include=FALSE}
# set global chunk options
opts_chunk$set(cache=TRUE)
```
Initial Text. Yay!

```{r plot1}
plot(1:10, 1:10)
```

More Text.  Outstanding.  What Hadley not calling it plyr2?

```{r plot2, fig.width=4, fig.height=4}
plot(1:10, 1:10)
```

`r paste(rep("So much text so little time!", 10000))`

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

РЕДАКТИРОВАТЬ Обнаружено это от друга: http://www.w3.org/TR/css3-page/ может быть полезным.

Ответ 1

Programatically. Создайте HTML-div. Установите для этой ширины и высоты div фиксированную сумму и переполнение для прокрутки.

<div style="height:1000px; width: 500px; overflow-y: scroll;">
    ...
</div>

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

<h1 style="height:300px;">First</h1>
<h1 style="height:300px;">Second</h1>
<h1 style="height:300px;">Third</h1>
<h1 style="height:300px;">Fourth</h1>
<h1 style="height:300px;">Fifth</h1>

Эти 5 h1 не будут помещаться на одной странице. Высота страницы составляет всего 1000 пикселей. На этой странице будут помещаться только теги h1. Нам понадобится вставить pagebreak после третьего элемента.

Постепенно добавьте каждый новый элемент в DOM. После вставки каждого элемента проверьте, присутствует ли полоса прокрутки браузера. Если это так, то мы знаем, что элемент, который мы только что вставили, слишком велик для этой страницы; удалите элемент и вставьте разрыв страницы.

До:

### First
### Second
### Third
### Fourth
### Fifth

После:

### First
### Second
### Third
------
### Fourth
### Fifth

Это будет работать для любого элемента, и вам не придется беспокоиться о высоте элемента. Потому что, если элемент, который вы только что вставили, сделал прокрутку HTML div, нам нужен разрыв страницы. Изображения, видео, h1, h2, p, custom/dynamic css, что угодно.

UPDATE

Вы также можете рассчитать высоту каждого элемента div. http://api.jquery.com/height/ Таким образом, пересчет 54-страничного документа будет намного проще.