knitr / Rmd:n行/ n距离后的分页符

时间:2013-04-23 15:57:41

标签: r knitr r-markdown

让我来说,这可能更适合作为html / css问题但是(a)我对这些技术并不太熟悉,而且(b)我想把它全部保留在如果可能,家庭(R家族)。

我想使用knitr使用Rmarkdown撰写学术风格报告( 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/可能会有所帮助。

1 个答案:

答案 0 :(得分: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不会全部放在同一页面上。该页面只有1000像素高。此页面上只有3个h1代码。我们需要在第三个元素之后插入一个分页符。

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

在:

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

后:

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

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

<强>更新

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