Índice de contenidos, figuras y tablas

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
---

toc

Í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

list of figures

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

Figura uno con caption

listoftables

list of tables

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:

  1. hacerlas con markdown
  2. incluirlas con \LaTeX
  3. crearlas con la función kable() del paquete knitr
  4. crearlas con la función xtable() del paquete xtable

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:

Tabla en markdown a pelo en el texto

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}...

codigo LaTeX para crear una tabla

Para crear tablas en LaTeX podemos hacer uso de la web Tables Generator

tabla en LaTeX generada con el anterior código

Con kable()

kable(summary(pressure), caption="Tabla con `kable()`")

tabla generada con kable

Con xtable()

ojo, el chunck debe de contener la opción: results='asis'

xtable(summary(pressure), caption="Tabla con \\texttt{xtable()}")

tabla generada con xtable


Notas: Podéis descargaros el fichero .Rmd y el .pdf

4 Respuestas a “Índice de contenidos, figuras y tablas

  1. 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

  2. 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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax