Este documento es un ejemplo de cómo hacer con RStudio
que tus documentos, además de un índice de contenidos, tengan un índice de tablas y otro de figuras. Para eso haremos uso de instrucciones de LaTeX en el documento de Rmarkdown
.
Se puede descargar el fichero en Rmd y pdf desde aquí:.Rmd, .pdf
Índice de contenidos: toc
Para hacer que aparezca un índice de contenidos, en el preámbulo del documento ponemos toc: yes
, de esta forma:
---
title: "Índice de contenidos, figuras y tablas"
output:
pdf_document:
toc: yes
---
Índice de tablas y figuras
Para el índice de figuras tenemos que añadir dos sentencias de LaTeX donde queramos que aparezcan estos índices
\listoffigures
\listoftables
simplemente aparecerá al principio el toc o table of contents que es lo que pretendíamos. Vemos los detalles …
listoffigures
En LaTeX un índice de gráficos se conoce como una lista de figuras, la instrucción es \listoffigures
, para que aparezcan indexadas todas las figuras o imágenes es importante que tengan siempre caption. Así que en el preámbulo del documento .Rmd
deberemos de poner fig_caption: yes
, quedando de esta forma el preámbulo del documento .Rmd
:
---
title: "Índice de contenidos, figuras y tablas"
output:
pdf_document:
fig_caption: yes
toc: yes
---
También en cada chunk que genere figuras/gráficos hemos de especificar la opción fig.cap
Un ejemplo de las opciones necesarias del chunk es este:
{r, fig.cap="plot de p madre segundo"}
que produce este gráfico con caption:

Figura uno con caption
listoftables
En LaTeX un índice de tablas se conoce como una lista de tablas, la instrucción es \listoftables
, para que aparezcan indexadas todas las tablas estas han de tener, al igual que las imágenes, caption.
Para crear tablas hay varias opciones:
- hacerlas con
markdown
- incluirlas con \LaTeX
- crearlas con la función
kable()
del paqueteknitr
- crearlas con la función
xtable()
del paquetextable
Así pues cargamos las librerías knitr
y xtable
:
Con markdown
Creamos la tabla, dejamos una linea en blanco y ponemos Table:
seguido del caption deseado, ojo a las mayúsculas de Table.
Si escribimos esto:
First Header | Second Header
------------- | -------------
Content Cell | Content Cell
Content Cell | Content Cell
Table: tabla en markdown a pelo en el texto
dará este resultado:
Para crear tablas en markdown
podemos hacer uso de la web Tables Generator
Con LaTeX
En este casi lo hemos hecho con un entorno tabla
y tabular
… \begin{table}...
Para crear tablas en LaTeX podemos hacer uso de la web Tables Generator
Con kable()
kable(summary(pressure), caption="Tabla con `kable()`")
Con xtable()
ojo, el chunck debe de contener la opción: results='asis'
xtable(summary(pressure), caption="Tabla con \\texttt{xtable()}")
Hola!!!! tengo una duda.
Hay alguna posibilidad de que en vez de poner TABLE XX o FIGURE , se añadiera TABLA o FIGURA XX???
Eso suele cambiar con el idioma que pongas. Si especificas español (
\usepackage[spanish]{babel}
en el preámbulo) se te cambiará solo. Y si no, siempre puedes cambiarlo a mano; te dejo este enlace donde se explica (eso es ya tema de LaTeX).Saludos
tengo escrito un documento en RMarkdown pero en el índice sale la palabra Contents y yo quisiera ïndice. Cómo hacerlo?
Hola, Emilio:
Eso es tema de LaTeX. Habría que añadir \usepackage[spanish]{babel} en el preámbulo. Par hacerlo desde Rmarkdown puedes utilizar la opción header-includes. Quedaría así:
header-includes:
– \usepackage[spanish]{babel}
Saludos
Álvaro
Hola me podrías ayudar por favor tengo un índice que me aparece así:
Índice
0.1. 5.2 El gaseano………….256
0.2. 5.3 La metansina……….259
1. 5.4 El cambio de enlace……………300
Como puedo quitar el 0.1. el 0.2. y el 1.