69

让我提醒一下,这可能更适合作为 html/css 问题,但是(a)我对这些技术不太熟悉,并且(b)如果可能的话,我想把它全部放在家庭(R 系列)中。

我想使用 Rmarkdownknitr编写学术风格报告(APA 6 类型指南)。我已经解决了大多数方面,但没有分页。我可以手动设置分页符,例如:

# 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's 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/ 可能会有所帮助。

4

1 回答 1

1

以编程方式。创建一个 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不会都放在同一页上。页面只有 1,000 像素高。h1此页面仅适合 3 个标签。我们需要在第三个元素之后插入分页符。

以增量方式将每个新项目添加到 DOM 中。插入每个项目后,检查浏览器的滚动条是否存在。如果是,那么我们知道我们刚刚插入的项目对于这个页面来说太大了;删除该项目并插入分页符。

前:

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

后:

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

这适用于任何元素,您不必担心项目的高度。因为,如果您刚刚插入的项目使 HTML div 滚动,那么我们需要一个分页符。图片、视频、h1、h2、p、自定义/动态 css,任何东西。

更新

您还可以计算每个 div 元素的高度。http://api.jquery.com/height/这样重新计算一个 54 页的文档会容易得多。

于 2013-10-13T08:22:58.733 回答