Guía rápida de Quarto

Referencia de sintaxis para documentos reproducibles

Esta página es una referencia rápida de la sintaxis de Quarto cubierta en el curso. Está organizada para consulta mientras trabajas en tu propio documento.

Estructura de un archivo .qmd

Un archivo Quarto tiene tres partes:

YAML   Encabezado entre ---: título, autor, formato de salida
Markdown   Texto con formato: encabezados, negrita, listas, enlaces…
Código   Bloques ```{r}…``` que se ejecutan al renderizar

Ejemplo mínimo:

---
title: "Mi análisis"
author: "Ana García"
lang: es
format: html
---

# Introducción

Texto en **Markdown**.

```{r}
mean(c(3, 7, 5, 9, 4))
```

Encabezado YAML

El YAML va al inicio del archivo, entre dos líneas ---. Las claves más comunes:

Clave Ejemplo Qué hace
title "Mi análisis" Título del documento
author "Ana García" Nombre del autor
date "2026-06-12" Fecha (o today para la fecha actual)
lang es Idioma: traduce etiquetas automáticas (“Figura”, “Tabla de contenidos”…)
format html / pdf / docx Formato de salida
toc true Incluye tabla de contenidos
number-sections true Numera los encabezados automáticamente
Tiplang: es es importante

Sin lang: es, Quarto usa inglés para las etiquetas automáticas: “Figure 1” en lugar de “Figura 1”, “Table of Contents” en lugar de “Tabla de contenidos”, etc.


Markdown: el lenguaje del texto

Encabezados

Los encabezados estructuran el cuerpo del documento. No son el título del documento, que se define en el YAML con title:.

# Encabezado nivel 1

## Encabezado nivel 2

### Encabezado nivel 3

Énfasis y código

Sintaxis Resultado
**negrita** negrita
*cursiva* cursiva
`código en línea` código en línea

Listas

- Elemento sin orden
- Otro elemento
  - Sub-elemento

1. Primer paso
2. Segundo paso

Enlaces e imágenes

[texto del enlace](https://r-project.org)

![descripción de la imagen](ruta/imagen.png)

Bloques de código

Un bloque de código (chunk) contiene código R que se ejecuta al renderizar. Las opciones se escriben al inicio del bloque con #|:

```{r}
#| echo: false
#| fig-height: 4
#| fig-cap: "Distribución del puntaje GAD-7"

encuesta |>
  ggplot(aes(x = ansiedad_total)) +
  geom_histogram(fill = "#225faa") +
  theme_minimal()
```

Opciones de bloque

Opción Por defecto Qué controla
label Identificador único del bloque. Para referencias cruzadas debe empezar por fig- (figuras) o tbl- (tablas)
echo true ¿Se muestra el código en el documento?
eval true ¿Se ejecuta el código?
include true false ejecuta el código pero no muestra nada
warning true ¿Se muestran las advertencias?
message true ¿Se muestran los mensajes de carga de paquetes?
fig-height 5 Alto de la figura en pulgadas
fig-width 7 Ancho de la figura en pulgadas
fig-cap Pie de figura; se numera automáticamente con lang: es
fig-align left Alineación de la figura: left, center, right
fig-alt Texto alternativo para lectores de pantalla (accesibilidad)
out-width Ancho de visualización en el documento: "70%", "400px"
TipBloque de configuración

Es habitual tener un primer bloque con #| include: false que carga los paquetes y los datos. Ese bloque se ejecuta pero no aparece en el documento:

```{r}
#| include: false
library(tidyverse)
library(readxl)

datos <- read_excel("datos/mi_archivo.xlsx", skip = 2)
```

Código en línea

Con `r ` puedes insertar el resultado de una expresión R directamente en el texto del documento:

La muestra incluyó `r nrow(encuesta)` participantes.
La media fue `r round(mean(encuesta$ansiedad_total), 1)` puntos.

Al renderizar, esas expresiones se reemplazan por sus valores calculados. Si los datos cambian, los valores del texto se actualizan solos.


Formatos de salida

El formato se controla con la clave format en el YAML. Puedes añadir opciones específicas de cada formato:

HTML

format:
  html:
    toc: true
    toc-depth: 2
    theme: cosmo
    self-contained: true

self-contained: true genera un único archivo .html que incluye todo (imágenes, estilos). Útil para compartir por correo.

PDF

Requiere LaTeX instalado. La opción más sencilla es TinyTeX:

install.packages("tinytex")
tinytex::install_tinytex()

Una vez instalado:

format: pdf

Word

format: docx

Útil para compartir con colaboradores que no usan R.

TipCambiar de formato sin tocar el contenido

Puedes cambiar el formato en cualquier momento modificando solo la línea format: del YAML. El texto, los bloques de código y las opciones de bloque no cambian.


Renderizar el documento

Desde RStudio: botón Render o atajo Ctrl+Shift+K.

Desde la terminal:

quarto render mi_documento.qmd

Si hay un error en algún bloque de código, el renderizado se detiene y muestra en qué bloque ocurrió.

Opciones globales de ejecución

En lugar de repetir opciones en cada bloque, defínelas una sola vez en el YAML bajo execute:. Las opciones del bloque individual siempre las anulan.

---
title: "Mi análisis"
format: html
execute:
  echo: false
  warning: false
  message: false
---
Opción global Efecto
echo: false Oculta el código en todos los bloques
warning: false Suprime advertencias
message: false Suprime mensajes de carga de paquetes
eval: false No ejecuta ningún bloque
cache: true Guarda los resultados en caché para no volver a ejecutar bloques que no cambiaron

Referencias cruzadas

Quarto numera figuras y tablas automáticamente y permite citarlas en el texto. Solo funciona en documentos (HTML, PDF, Word), no en presentaciones revealjs.

Figuras — el label debe comenzar con fig- y el bloque debe tener fig-cap:

```{r}
#| label: fig-masas
#| fig-cap: "Masa corporal por especie de pingüino"
#| echo: false

pinguinos |> ggplot(aes(x = species, y = body_mass_g)) + geom_boxplot()
```

Como se observa en la @fig-masas, la especie Gentoo tiene la mayor masa corporal.

Tablas — el label debe comenzar con tbl-:

```{r}
#| label: tbl-resumen
#| tbl-cap: "Resumen por especie"

knitr::kable(resumen)
```

Los resultados se muestran en la @tbl-resumen.

Quarto genera la numeración y los enlaces automáticamente. Sin fig-cap (o tbl-cap) no se crea la referencia aunque exista el label.


Citas y referencias bibliográficas

El archivo .bib

Las referencias se guardan en un archivo de texto con extensión .bib. Cada entrada tiene un tipo, una clave única y los campos:

@Article{Spitzer2006,
  title   = {A Brief Measure for Assessing Generalized Anxiety Disorder},
  author  = {Spitzer, Robert L. and Kroenke, Kurt and Williams, Janet B. W.
             and Löwe, Bernd},
  journal = {Archives of Internal Medicine},
  year    = {2006},
  volume  = {166},
  pages   = {1092--1097},
  doi     = {10.1001/archinte.166.10.1092},
}

Guarda el archivo como referencias.bib en la raíz del proyecto, junto a tu .qmd. Las entradas las puedes obtener desde páginas de editoriales (ScienceDirect, Springer…) → “Export citation” → BibTeX, o desde el editor visual de RStudio (Insert → Citation…).

Vincular al documento

---
title: "Mi reporte"
format: html
bibliography: referencias.bib
csl: https://www.zotero.org/styles/apa
---

csl define el estilo de citas. Puedes usar cualquier estilo de zotero.org/styles. La lista de referencias aparece automáticamente al final del documento.

Citar en el texto

Sintaxis Resultado
@Spitzer2006 Spitzer et al. (2006)
[@Spitzer2006] (Spitzer et al., 2006)
[@clave1; @clave2] (Autor1, año; Autor2, año)
[-@Spitzer2006] (2006) — suprime el autor

En el editor visual, escribir @ abre un menú de autocompletado con todas las claves del .bib.

Citar R y sus paquetes

citation()               # referencia de R base
citation("ggplot2")      # referencia de un paquete
toBibtex(citation())     # en formato BibTeX, listo para copiar al .bib

Archivo HTML portable

Por defecto, un documento HTML de Quarto genera varios archivos auxiliares (CSS, JavaScript, imágenes). Para compartirlo como un único archivo que se puede enviar por correo o abrir sin conexión:

---
format:
  html:
    embed-resources: true
---

Esto incrusta todos los recursos directamente en el .html.


Para profundizar

Esta guía cubre solo lo que usamos en el curso. Para ir más allá:

  • Quarto Documentation — la documentación oficial, muy completa. Cubre todos los formatos de salida, opciones de figura, publicación, presentaciones y mucho más.
  • Quarto Tricks — colección de trucos prácticos y poco conocidos para sacarle más partido a Quarto.