the - knitr/Rmd: salto de página después de n líneas/n distancia
r markdown the definitive guide pdf (1)
Permítanme advertir que esto puede ser más apropiado como una pregunta html / css pero (a) no estoy muy familiarizado con esas técnicas y (b) si es posible, quería mantener todo en la familia (familia R).
Me gustaría usar knitr
para escribir informes de estilo académico ( pautas de tipo APA 6 ) usando Rmarkdown. Tengo la mayoría de los aspectos resueltos pero no de páginas. Puedo configurar pausas de página manualmente con algo como:
# 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
En el siguiente .Rmd, me gustaría establecer programáticamente esas interrupciones después de n lines / n distance. Entonces digamos después de 8 pulgadas o 140 líneas.
# 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))`
¿Cómo puedo programar programáticamente saltos de página después de una distancia n? Esto es similar a cómo LaTeX
dividiría un archivo en páginas, por lo que si una figura ocupa demasiado espacio, sería forzado a pasar a la página siguiente.
EDITAR Encontrado esto de un amigo: http://www.w3.org/TR/css3-page/ puede ser útil.
Programaticamente Crea un div HTML. Establezca el ancho y alto de este div en una cantidad fija y el desbordamiento para desplazarse.
<div style="height:1000px; width: 500px; overflow-y: scroll;">
...
</div>
Procese su rebaja en elementos HTML. Tengo 5 etiquetas de h1
que son 300 px de altura cada una.
<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>
Estos 5 h1
no encajarán todos en la misma página. La página tiene solo 1,000 píxeles de alto. Solo 3 etiquetas h1
caben en esta página. Tendremos que insertar un salto de página después del tercer elemento.
Incrementa cada elemento nuevo en el DOM. Después de insertar cada elemento, compruebe si la barra de desplazamiento del navegador está presente. Si es así, entonces sabemos que el artículo que acabamos de insertar era demasiado grande para esta página; eliminar el elemento e insertar un salto de página.
Antes de:
### First
### Second
### Third
### Fourth
### Fifth
Después:
### First
### Second
### Third
------
### Fourth
### Fifth
Esto funcionaría para cualquier elemento y no tendría que preocuparse por la altura de un elemento. Porque, si el elemento que acaba de insertar hizo el desplazamiento del div HTML, entonces necesitamos un salto de página. Imágenes, videos, h1, h2, p, CSS personalizado / dinámico, cualquier cosa.
ACTUALIZAR
También puede calcular la altura de cada elemento div. http://api.jquery.com/height/ esa manera, volver a calcular un documento de 54 páginas sería mucho más fácil.