knitr / Rmd:n行/ n之后的分页符

让我告诫说,这可能更适合作为一个HTML / CSS的问题,但(一)我不太熟悉这些技术和(二)我想保持在家庭(R家庭),如果可能的话。

我想用knitr来编写使用Rmarkdown的学术风格报告( APA 6types指南 )。 我有很多方面的工作,但不是分页。 我可以手动设置分页符类似的东西:

 # 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如何将文件分解成页面相似,如果一个graphics占用太多的空间,它将被强制转到下一页。

编辑发现这从一个朋友: http : //www.w3.org/TR/css3-page/可能会有所帮助。

编程方式。 创build一个HTML div。 将这个div的宽度和高度设置为一个固定值,然后溢出滚动。

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

处理您的减价到HTML元素。 我有5个h1标签,每个300px高。

 <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滚动,那么我们需要一个分页符。 图片,video,h1,h2,p,自定义/dynamiccss,任何东西。

UPDATE

你也可以计算每个div元素的高度。 http://api.jquery.com/height/这种方式重新计算一个54页的文档会容易得多。;