Quarto: qué es y cómo se compara con Rmd
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.57Si 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.qmdResultado: hola.html en la misma carpeta. Ábrelo en navegador y verás el documento.
Para preview con auto-reload:
quarto preview hola.qmdAbre 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.RmdRender. 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,
knitrviene conlibrary(knitr). Para Python, necesitasjupytery 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 tinytexinstala 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.