3.5 Cabecera YAML

En un fichero RMarkdown se puede incluir metadatos en una cabecera en formato YAML (YAML Ain’t Markup Language, https://en.wikipedia.org/wiki/YAML), comenzando y terminando con tres guiones ---. Los metadatos de YAML son típicamente opciones de renderizado consitentes en pares de etiquetas y valores separados por dos puntos. Por ejemplo:

---
title: "Creación de contenidos con RMarkdown"
author: "Fernández-Casal, R. y Cotos-Yáñez, T.R."
date: "`r Sys.Date()`"
output: html_document
---

Aunque no siempre es necesario, se recomienda que los valores de texto se introduzcan entre comillas (se puede incluir código R en línea, como por ejemplo `r Sys.Date()` para obtener la fecha actual). Para valores lógicos se puede emplear yes/true y no/false para verdadero y falso, respectivamente.

Los valores pueden ser vectores, por ejemplo las siguientes opciones son equivalentes:

bibliography: [book.bib, packages.bib]
bibliography:
- book.bib
- packages.bib

También pueden ser listas, añadiendo una sangría de dos espacios (importante):

output:
  html_document:
    toc: yes
    toc_float: yes
  pdf_document:
    toc: yes

El campo output permite especificar el formato y las opciones de salida (por defecto se empleará la primera). Empleando este campo también se pueden especificar opciones gráficas para los bloques de código, por ejemplo:

output:
  html_document:
    fig_width: 7
    fig_height: 6
    fig_caption: true

La mayoría de los campos YAML son opciones que el paquete rmarkdown le pasa a Pandoc (ver documentación en el Apéndice A).

Un ejemplo adicional7:

---
title: "Creación de contenidos con RMarkdown"
subtitle: "Curso de introducción a R"
author:
- name: "Rubén Fernández Casal (ruben.fcasal@udc.es)"
  affiliation: "Universidade da Coruña"
- name: "Tomás R. Cotos Yáñez (tcotos@uvigo.es)"
  affiliation: "Universidade de Vigo"
date: "2023-04-01"
logo: rmarkdown.png
output:
  html_document:
    toc: yes                  # incluir tabla de contenido
    toc_float: yes            # toc flotante a la izquierda
    number_sections: yes      # numerar secciones y subsecciones
    code_folding: hide        # por defecto el código aparecerá oculto
    mathjax: local            # emplea una copia local de MathJax, hay que establecer:
    self_contained: false     # las dependencias se guardan en ficheros externos
    lib_dir: libs             # directorio para librerías (Bootstrap, MathJax, ...)
  pdf_document:
    toc: yes
    toc_depth: 2
    keep_tex: yes             # conservar fichero latex
---

Como se puede deducir del ejemplo anterior, en el formato YAML podemos incluir comentarios con el carácter # (por ejemplo para no emplear alguna de las opciones sin borrarla del encabezado).

En el Capítulo 3 del libro de RMarkdown se tiene información detallada sobre las opciones de los distintos formatos de salida (sobre ficheros HTML en la sección HTML document y sobre PDF/LaTeX en PDF document).


  1. Puede ser interesante ejecutar str(rmarkdown::html_document()) para ver un listado de todas las opciones disponibles de html_document↩︎