1.3 Algunos detalles adicionales:
para más opciones de bookdown y detalles en general consultar https://rubenfcasal.github.io/bookdown_intro/ (en español).
el formato del pdf es para ser impreso por los dos lados, por eso incluye algunas páginas en blanco (por ejemplo, la paǵina de atrás de la portada), y también los números de página se van alternando entre izquierda y derecha
Es posible generar una referenciación automática de tablas, imágenes y gráficos; además, se generan los índices respectivos en el formato pdf. Si estos provienen simplemente de archivos externos, se pueden almacenar en la carpeta “imágenes” e insertar así:
```{r nombre, echo=FALSE, fig.cap="Imagen de ejemplo", fig.align = 'center', out.width = '50%'}
knitr::include_graphics(path = "images/build_book.png")
```
Lo que hay aquí es un trozo o “chunk” de código R, que en (R)Markdown se inserta simplemente entre tres acentos invertidos (“```”). Luego hay dos partes: las especificaciones de formato que van entre llaves {}, y la instrucción de lo que hay que hacer, en este caso llamar una imagen. Vamos por parte:
- especificaciones de formato:
r
solamente informa que viene código Rnombre
: es el nombre que identifica al chunk, puede ser cualquieraecho=FALSE
: esto se utiliza para que solo se muestre el resultado sin el código. Si fueraTRUE
, entonces aparecería la función que llama la imagen además que la mi_imagenfig.cap
: el título de la imagenfig.align
: alineación de la figuraout.width
: ancho en relación a la página. Hay diferentes formas de especificar las dimensiones, la ventaja de esta es que funciona bien tanto para pdf como para html, por lo que se recomienda
- instrucción o función: aquí se da la ruta a la imagen dentro del paréntesis con
path=
, y lo que antecede es la función para incluir gráficos de la librería knitr de R. Pero en simple: solo reemplazar el nombre de la imagen
Al incluir este trozo de código el resultado será el siguiente:
Donde la referenciación (caption) tiene el número 1.2, que quiere decir que es la segunda imagen del capítulo 1. En el pdf ahora esta figura aparece en el índice de figuras.
- en el caso de gráficos generados por R, también se insertan dentro de un chunk, por ejemplo
```{r echo=FALSE, fig.cap="Gráfico de ejemplo", fig.align = 'center', out.width = '50%'}
boxplot(Sepal.Length~Species,data=iris,
xlab="Species", ylab="Sepal Length", main="Iris Boxplot")
```
Y el resultado es este:
- finalmente para las tablas producidas por R, es un poco más difícil si se quiere obtener el documento tanto en html como en pdf (que se genera vía Latex). En este caso, las tablas deben ser producidas en formato markdown, lo que no es muy común todavía en las distintas librerías de R que en genera privilegian o html o latex. La función para producir tablas markdown en R es principalmente
kable
, de la libreríaknitr
, por ejemplo:
```{r tabla, echo=FALSE, caption="tabla de ejemplo", align = 'center'}
knitr::kable(head(iris), caption = "An example table caption.")
```
::kable(head(iris), caption = "Un ejemplo de tabla") knitr
Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
---|---|---|---|---|
5.1 | 3.5 | 1.4 | 0.2 | setosa |
4.9 | 3.0 | 1.4 | 0.2 | setosa |
4.7 | 3.2 | 1.3 | 0.2 | setosa |
4.6 | 3.1 | 1.5 | 0.2 | setosa |
5.0 | 3.6 | 1.4 | 0.2 | setosa |
5.4 | 3.9 | 1.7 | 0.4 | setosa |
- nota sobre ubicación de imágenes y tablas en documento pdf (latex): en general se producen problemas en la ubicación, ya que automáticamente se ajustan al lugar disponible más cercano, sea atrás o delante. Si se quiere fijar la posición en el pdf, agregar antes y después del texto
\FloarBarrier
, que es un comando latex que no será visible ni en pdf ni en html.