Quarto 1.6

Quarto 1.6 supports unified branding across formats, updates to RevealJS, a new shortcode to reorder content, a landscape page block, and more. There are also a couple of breaking changes that will affect a small number of users.

Quarto 1.6
Releases
Author

Charlotte Wickham

Published

November 25, 2024

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

We are particularly excited about:

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
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:

Screenshot of a webpage. The text is dark grey on a light blue background, using a rounded sans-serif typeface, a logo appears in the navbar.

Webpage: html

Screenshot of a dashboard. The text is dark grey on a light blue background, using a rounded sans-serif typeface, a logo appears in the navbar.

Dashboard dashboard

Screenshot of a presentation. The text is dark grey on a light blue background, using a rounded sans-serif typeface, a logo appears in bottom left of the slide.

Presentation: revealjs

Screenshot of a PDF document. The text is dark grey on a light blue background, using a rounded sans-serif typeface, a logo appears in top right of the page.

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:

```{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:

::: 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:

::: {.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:

```{{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)
```

Screenshot of a document showing two plots with an overall caption labelled 'Table 1', and each plot with a caption starting '(a)' and '(b)' respectively.

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

Subscribe

Enjoy this blog? Get notified of new posts by email: