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
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:
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 GG to activate, type a slide number or ID, and hit Enter/Return.
Scroll Mode: Scroll rather than click to advance slides. Press RR, 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)
```
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 withquarto 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 thegraphics.tex
partial.A Pandoc change means some images are now wrapped in
\pandocbounded
. Consequently, yourgraphics.tex
partial, or your template, needs to define\pandocbounded
. You can look at our source code forgraphics.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