What Authoring Features Does Quarto's Markdown Provide?

Updated

Quarto's authoring layer is Pandoc markdown plus a set of extensions aimed at scientific and technical documents. If you need equations, citations, cross-references, figure panels, callouts, or advanced page layout in a reproducible document, you can write all of it in plain text and render to HTML, PDF, MS Word, ePub, and more. The features below apply when you author in markdown (or in a Jupyter notebook, which Quarto can also render).

The base: Pandoc markdown

Quarto documents are written in Pandoc markdown, so standard markdown syntax works, and the Pandoc extensions for scholarly writing are available. This is the foundation the rest of the authoring features build on.

Scientific writing features

The Quarto overview lists these markdown capabilities explicitly:

  • Equations — mathematical notation in your source text.
  • Citations — reference management integrated into the markdown.
  • Cross-references — link to figures, tables, sections, and other labeled elements.
  • Figure panels — compose multi-part figures.
  • Callouts — highlighted notes, warnings, and tips.
  • Advanced layout — control how content is arranged on the page.

A cross-reference in practice looks like @fig-airquality in the body text, paired with a label on the code chunk that produces the figure. Quarto resolves the label to the correct number and link at render time.

Dynamic content inside markdown

Markdown is not static here. You can embed executable code from Python, R, Julia, and Observable, and the output — plots, tables, computed values — is inserted into the rendered document. The overview describes this as creating "dynamic content" and publishing "reproducible, production quality" output.

A minimal R example from the site shows the pattern:

---
title: "ggplot2 demo"
author: "Norah Jones"
date: "5/22/2021"
format:
  html:
    fig-width: 8
    fig-height: 4
    code-fold: true
---

## Air Quality

@fig-airquality further explores the impact of temperature on ozone level.

```{r}
#| label: fig-airquality
#| fig-cap: "Temperature and ozone level."
#| warning: false
library(ggplot2)
ggplot(airquality, aes(Temp, Ozone)) +
  geom_point() +
  geom_smooth(method = "loess")

The chunk options (`label`, `fig-cap`, `warning`) are written as comments inside the code block, which is how you attach behavior to a chunk without leaving markdown.

## Authoring tools and formats

You can write in a Jupyter notebook UI or in plain text markdown in your editor of choice. The same source can render to HTML, PDF, MS Word, ePub, and other formats, and can be published to systems such as Posit Connect or Confluence.

## How this relates to R Markdown

Quarto is described as a multi-language, next-generation version of R Markdown from Posit. It uses knitr to execute R code, so most existing `.Rmd` files render without modification. If you already have R Markdown documents with equations, citations, and cross-references, that investment carries over.

## What to check before committing

- **Format needs**: confirm your target output (HTML, PDF, Word, ePub) is among the supported formats for your workflow.
- **Language**: Python, R, Julia, and Observable are supported; pick the engine that matches your code.
- **Existing documents**: if you have R Markdown files, they are likely to render as-is, which lowers migration cost.
- **Publishing target**: if you need to publish to Posit Connect, Confluence, or another system, verify that path fits your organization.

For the exact syntax of each feature, the Quarto Guide and Reference sections are the authoritative sources; the overview page establishes what is available, not the full grammar.