Quarto 1.6 has been officially released! You can get the current release from the download page .

We are particularly excited about:

  • Support for brand.yml—a single file that defines your organization’s branding and style preferences across formats.

  • RevealJS updates, including the new navigation features: scroll mode and jump to slide.

  • The contents shortcode for reordering your content.

  • landscape blocks for placing content on a landscape page.

  • Improvements in how you can specify subpanels of cross-references from code blocks.

You can read about these new features and a couple of breaking changes in the sections below. You can find all the changes in this version in the Release Notes .

Cross-format theming with brand.yml#

brand.yml is a Posit project outside Quarto that defines brand information using a simple YAML file. Quarto is a flagship adopter of brand.yml and supports brand-themed output for html, dashboard, typst and revealjs formats.

As an example, consider the following _brand.yml file:

_brand.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
color:
  palette:
    dark-grey: "#222222"
    blue: "#ddeaf1"
  background: blue
  foreground: dark-grey
  primary: black

logo: 
  medium: logo.png

typography:
  fonts:
    - family: Jura
      source: google
  base: Jura
  headings: Jura

When this _brand.yml is placed in a project, webpages, presentations, PDF reports, and dashboards will share a common appearance:

Webpage: html
Dashboard dashboard
Presentation: revealjs
PDF: typst

View the example: Source | Live website

Get started by reading the Quarto Guide to Brand .

RevealJS update#

Quarto v1.6 updates RevealJS to v5.1.0. With the update comes two notable features:

Jump to Slide : Quickly navigate to a slide. Press G to activate, type a slide number or ID, and hit Enter/Return.

Scroll Mode : Scroll rather than click to advance slides. Press R, add ?view=scroll to your URL, or use the Navigation menu to activate. Automatically activated on small screens.

Contents shortcode#

The contents shortcode lets you compose content in one location in your document and then display it in another. For example, you might use a code cell to generate a plot:

1
2
3
4
5
6
```{python}
#| echo: false
#| label: a-cell
import matplotlib.pyplot as plt
plt.plot([1,2,3])
```

Then use the contents shortcode to display that plot in a callout by referencing its label, a-cell:

1
2
3
4
5
6
::: callout-note
## Note the following plot

{{< contents a-cell >}}

:::

Find all the details on our guide page on the contents shortcode .

Landscape mode#

In pdf, docx, and typst formats, you can now put content on a landscape page by placing it inside a landscape block :

1
2
3
4
5
::: {.landscape}

This will appear in landscape.

:::

Cross-reference improvements#

It should now be easier to get Quarto to recognize subfloats (subtables, subfigures, etc) when they’re emitted by code cells. If the subcap attribute of a code cell has as many entries as the number of outputs from your code cell, Quarto knows to accept those as subfloats. See #10328 for details.

Minimal example:

1
2
3
4
5
6
7
8
9
```{{r}}
#| label: tbl-example
#| tbl-cap: I want these images to be interpreted as Tables.
#| tbl-subcap:
#|   - This is the subcaption for the first subtable
#|   - This is the subcaption for the second subtable
plot(1:10)
plot(11:20)
```
The result of executing the above code cell in HTML format

Breaking Changes#

We try very hard to keep Quarto backward compatible. However, in this release, there are a couple of breaking changes due to upstream dependencies. You may be affected if:

  • You have TypeScript files (*.ts) that you use either with pre- or post-render scripts, or with quarto run, that import Deno standard libraries.

    The import syntax has changed. Please see Deno Scripts for the necessary changes.

  • You override the LaTeX graphics.tex partial, or you have a completely custom LaTeX template that doesn’t use the graphics.tex partial.

    A Pandoc change means some images are now wrapped in \pandocbounded. Consequently, your graphics.tex partial, or your template, needs to define \pandocbounded. You can look at our source code for graphics.tex to see the necessary changes and read more about the upstream change in Pandoc commit 26b25a4.

Acknowledgments#

We want to say a huge thank you to everyone who contributed to this release by opening issues and pull requests:

ArthurData , Blake-Madden , Coding4Sec , EricMarcon , Fgazzelloni , GeorgRamer , Gewerd-Strauss , GuillaumeDehaene , HarunCelikOtto , IULibScholComm , IndrajeetPatil , LeoLuongVuong , MarcellGranat , Mavoort , Nenuial , PeteArm , ShixiangWang , Steinthal , Walser52 , Xinenomine , abbyruthe , aborruso , adamblake , albert-ying , alecloudenback , allefeld , aronatkins , arthur-shaw , astrowonk , avras , baker-jr-john , bcm0 , blackerby , boshek , brandonmontez , brianmsm , bryanhanson , carschandler , castedo , chaz-clark , christopherkenny , coatless , d-morrison , danieltomasz , daxkellie , ddlawton , debruine , dsbitor , e-miz , eculler , edavidaja , edvinsyk , eitsupi , ethanwhite , fermarsan , floesche , fradav , fredguth , gadenbuie , georgestagg , github-actions[bot] , halleysfifthinc , hamelsmu , hansfn , harrylojames , hodgesmr , holtzy , hugetim , hurak , iagopinal , isabelizimm , itsmevictor , jameslairdsmith , javajon , jchiquet , jdfoote , jido , jimjam-slam , jkrumbiegel , jmgirard , jmhammond , joelostblom , johannes-menzel , juliantao , jvcarli , kazuyanagimoto , kbvernon , kdheepak , kjohnsen , lballabio , leovan , loneguardian , longapalooza , lucacasonato , lukmanaj , lwjohnst86 , machow , maelle , masud90 , melaniewalsh , mfisher87 , mipmip , mitzimorris , mpr1255 , nessan , neuwirthe , nichtich , njericha , nsarang , olivroy , ozanozbeker , paciorek , pagiraud , parmsam , pedrohbraga , peteole , produnis , raffaem , ryarazi , ryjohnson09 , s2t2 , salim-b , samlalwani , sgelzenleuchter , skriptum , snhansen , stragu , sun123zxy , sverrirarnors , topepo , truecluster , tylere , winniehell , xtimbeau , yogabonito , yurivict , yves-amevoin .

The palette emoji in the listing and social card image for this post comes from OpenMoji– the open-source emoji and icon project. License: CC BY-SA 4.0