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:
---: título, autor, formato de salidaMarkdown 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 |
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 pasoEnlaces e imágenes
[texto del enlace](https://r-project.org)
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"… |
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: trueself-contained: true genera un único archivo .html que incluye todo (imágenes, estilos). Útil para compartir por correo.
Requiere LaTeX instalado. La opción más sencilla es TinyTeX:
install.packages("tinytex")
tinytex::install_tinytex()Una vez instalado:
format: pdfWord
format: docxÚtil para compartir con colaboradores que no usan R.
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.qmdSi 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 .bibArchivo 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.