Quarto: qué es y cómo se compara con Rmd

quarto
reproducibilidad
Qué es Quarto, en qué se diferencia de R Markdown, por qué Posit lo adopta como sucesor y cuándo conviene migrar (o no). Instalación y primer documento.

Qué es Quarto

Quarto es un sistema de publicación científica y técnica desarrollado por Posit (los de RStudio). Te permite escribir documentos que combinan prosa con código ejecutable, y de ahí generar HTML, PDF, Word, presentaciones, sitios web, libros y artículos.

Si vienes de R Markdown, la frase corta: Quarto es la evolución de Rmd. Mismo principio, ejecutor distinto, sintaxis más amplia, lenguaje agnóstico.

Si no vienes de Rmd: piensa en un Markdown con esteroides que ejecuta código y produce outputs publicables con cero esfuerzo de maquetación.

La idea: literate programming práctico

Un archivo .qmd mezcla tres cosas:

  • Texto Markdown: secciones, listas, énfasis.
  • Chunks de código: R, Python, Julia, Observable JS, lo que sea.
  • Front matter YAML: configuración (formato de salida, autor, opciones).

Quarto ejecuta el código, captura outputs (gráficos, tablas, mensajes), los inserta en el documento, y renderiza al formato pedido. Una sola fuente, múltiples salidas.

Esto se llama literate programming (la idea es de Knuth, años 80), el código y su explicación viven juntos. Suena obvio. En práctica, separar análisis del informe es la causa #1 de “los resultados que ya no se pueden reproducir”.

Quarto vs R Markdown

Lo que comparten:

  • Sintaxis Markdown.
  • Chunks ejecutables con código.
  • Front matter YAML.
  • Misma filosofía.

Lo que cambia:

R Markdown Quarto
Motor ejecución knitr (R-centric) knitr (R) o jupyter (Python/Julia)
Lenguajes nativos R principalmente R + Python + Julia + Observable JS
Sintaxis chunks ```{r} ```{r} (igual)
Sintaxis opciones {r, echo=FALSE, fig.cap="..."} #\| echo: false#\| fig-cap: "..."
Cross-references bookdown (paquete extra) Nativas
Sitios web blogdown, distill Nativas (Quarto Website)
Libros bookdown Nativas (Quarto Book)
Citas/bibliografía Soporta .bib Soporta .bib + DOI inline
Outputs avanzados (presentaciones, dashboards) Múltiples paquetes Integrado

Quarto no requiere R. Puede usarse 100 % con Python. Esa es la diferencia más estratégica con Rmd, que vive y muere con R.

¿Se va a quitar R Markdown?

No a corto plazo. Posit ha dicho explícitamente que mantiene Rmd y los paquetes asociados (bookdown, blogdown, distill) por compatibilidad. Pero no añade features nuevas allí.

En la práctica: proyectos nuevos en Quarto. Proyectos vivos en Rmd, migración cuando duela menos que seguir.

Cuándo migrar Rmd → Quarto

Razones para migrar:

  • Quieres cross-references sin dependencias extra.
  • Tu proyecto crece a website o libro.
  • Vas a colaborar con gente que usa Python.
  • Estás cansado de combinaciones bookdown + pandoc + temas de CSS de hace 5 años.

Razones para no migrar (por ahora):

  • Tu proyecto Rmd ya está cerrado, funciona y no se toca.
  • Usas paquetes de output muy específicos (revealjs configurado a medida, custom CSS) que tendrías que reescribir.
  • Tu equipo no quiere dos sistemas, esperas a migrar todo de golpe.

Instalación

Quarto es una aplicación de línea de comandos independiente, no es un paquete de R o Python. Se descarga desde quarto.org/docs/get-started.

Instaladores nativos para Windows, macOS y Linux. Después de instalar:

quarto --version
# 1.5.57

Si esto responde, Quarto está instalado y en el PATH.

Integración con editores

RStudio

RStudio (Posit) incluye soporte nativo desde la versión 2022.07. File → New File → Quarto Document. Botón “Render” en la barra. Edición visual disponible (Source ↔︎ Visual).

Si tu RStudio es antiguo, actualiza, vale la pena.

VS Code

VS Code con la extensión oficial de Quarto (de Posit). Búscala en el marketplace. Da: syntax highlighting, autocompletado, render en sidebar, preview en vivo.

Para usuarios que trabajan con Python, VS Code + extensión Quarto + Python es una combinación excelente. Yo la prefiero a Jupyter para escritura larga.

Otros

Quarto funciona desde cualquier editor, al final son .qmd (texto plano) que se renderizan con quarto render. Vim, Emacs, Sublime, Neovim, lo que sea.

El primer documento

Una vez instalado, crea hola.qmd:

---
title: "Mi primer Quarto"
format: html
---

## Sección de prueba

Esto es **texto en markdown**. Y aquí ejecuto código:

`​`​`{r}
1 + 1
`​`​`

Y un gráfico:

`​`​`{r}
plot(cars)
`​`​`

Renderiza:

quarto render hola.qmd

Resultado: hola.html en la misma carpeta. Ábrelo en navegador y verás el documento.

Para preview con auto-reload:

quarto preview hola.qmd

Abre el navegador y se actualiza cuando guardas el .qmd. Es el flujo más cómodo para escritura.

¿Y .Rmd antiguos?

Quarto lee .Rmd sin conversión. Si tienes uno funcional:

quarto render documento.Rmd

Render. Eso significa que migrar un proyecto Rmd a Quarto suele ser un cambio gradual: renombras .Rmd.qmd cuando quieras usar features Quarto, y mientras todo sigue funcionando.

Estructura de un proyecto Quarto

Cuatro archivos típicos en un proyecto:

proyecto/
├── _quarto.yml           # configuración global del proyecto
├── index.qmd             # documento principal
├── otro.qmd
└── _site/                # output (no se versiona)

_quarto.yml es el archivo de configuración del proyecto, formato por defecto, tema, navegación. Lo veremos en el tutorial 9 (websites).

Trampas habituales

  • Confundir Quarto la app con un paquete R. Quarto no se instala con install.packages(). Es una aplicación CLI separada.
  • RStudio antiguo sin soporte nativo. Si “File → New File” no tiene “Quarto Document”, actualiza RStudio.
  • Migrar de Rmd cambiando solo la extensión. Quarto lee Rmd, pero si quieres usar las features Quarto (callouts, cross-refs nativas, opciones #|), conviene revisar el archivo y adaptarlo gradualmente.
  • Renderizar sin tener el motor instalado. Para R, knitr viene con library(knitr). Para Python, necesitas jupyter y un kernel. El mensaje de error es claro cuando falta.
  • Pelearse con LaTeX antes de instalarlo. Si vas a hacer PDF, necesitas LaTeX. quarto install tinytex instala TinyTeX (versión ligera, suficiente). No lo hagas hasta que necesites PDF.

En la siguiente entrega

Tienes Quarto instalado. Lo siguiente es escribir un documento real: front matter, secciones, output a HTML/PDF/Word, y las opciones de YAML que conviene conocer. Lo siguiente.