From 2ee98f27f8e522787eeccab5801a190741c7bb75 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 12 Nov 2026 16:06:21 +0100 Subject: [PATCH 1/5] Drop tables from the Content with Caption layout description Pandoc 3.13, bundled with Quarto 1.12, puts a non-two-column slide that contains a table on the Title and Content layout, so text followed by a table no longer selects Content with Caption as it did with Pandoc 3.10. Text followed by an image still does. Two-column slides are unchanged: a column with text followed by a table still selects Comparison. --- docs/presentations/powerpoint.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/presentations/powerpoint.qmd b/docs/presentations/powerpoint.qmd index 8095357585..f046af9c74 100644 --- a/docs/presentations/powerpoint.qmd +++ b/docs/presentations/powerpoint.qmd @@ -78,7 +78,7 @@ When creating slides, the pptx writer chooses from a number of pre-defined layou **Content with Caption** -: This layout is used for any non-two-column slides which contain text followed by non-text (e.g. an image or a table). +: This layout is used for any non-two-column slides which contain text followed by an image, unless the slide also contains a table. **Blank** From 47c83b1559bfc89ca47acfca19feade0dae0f250 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 12 Nov 2026 16:08:27 +0100 Subject: [PATCH 2/5] Document typst-label and lang on spans for Typst output Quarto 1.12 bundles Pandoc 3.13, which reads two attributes in Typst output that Pandoc 3.10, bundled with Quarto 1.11, ignored. A div with a typst-label attribute gets that Typst label, replacing the label Pandoc already derived from the div's identifier; the attribute was added in Pandoc 3.10.2. A span with lang now renders as #text(lang: ...)[...], where Pandoc 3.10 dropped the attribute; lang on a div already worked. The labels section says that typst-label is for raw Typst code, and that cross-references keep using Quarto identifiers: Quarto's crossref filters write their own labels, and typst-label has no consistent effect on them (no label on a figure, an extra label on a theorem). --- docs/output-formats/typst.qmd | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/output-formats/typst.qmd b/docs/output-formats/typst.qmd index d8a5377db2..5a6650acf4 100644 --- a/docs/output-formats/typst.qmd +++ b/docs/output-formats/typst.qmd @@ -232,6 +232,38 @@ This gets compiled to [This is a block with gray background and slightly rounded corners.]) ```` +## Typst Labels + +{{< prerelease-callout 1.12 >}} + +The identifier of a div becomes a [Typst label](https://typst.app/docs/reference/foundations/label/) on its content, so [raw Typst](#raw-typst) code can target the div, for example with a show rule. To give the div a Typst label that differs from its identifier, or a label without an identifier, use the `typst-label` attribute: + +```` markdown +```{=typst} +#show : set text(fill: blue) +``` + +::: {typst-label="note-box"} +This text is blue. +::: +```` + +A show rule applies only to content after it, so place the raw Typst block before the div. + +`typst-label` is for raw Typst code. To refer to a figure, table, or theorem, give it a Quarto [cross-reference](/docs/authoring/cross-references.qmd) identifier such as `#fig-plot` and use `@fig-plot`, as in other formats. + +## Text Language + +{{< prerelease-callout 1.12 >}} + +Set `lang` on a span or a div to write content in a language other than the document's `lang`. Typst then uses that language for the content, for example for hyphenation and smart quotes: + +``` markdown +The German greeting [Guten Tag]{lang="de"} means "good day". +``` + +The span renders as `#text(lang: "de")[Guten Tag]`. + ## Theorems {{< prerelease-callout 1.9 >}} From 070598950edc134fdfb3b58a62e9db3d00e55a28 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 12 Nov 2026 16:26:03 +0100 Subject: [PATCH 3/5] Add Pandoc 3.13 notes to the 1.12 pre-release highlights Quarto 1.12 bundles Pandoc 3.13. The highlights list the changes that can break an existing document under "When upgrading", following the 1.11 page: bibliography files with duplicate keys, particle sorting, Word bookmark names and percent image widths, MathML in HTML without Bootstrap, divs that wrap a heading, and Typst horizontal rules with the Typst 0.15 requirement for QUARTO_TYPST. Smaller changes stay in the changelog. The LaTeX Equations section of the HTML page said MathJax is the default. That is true for Bootstrap HTML only; minimal: true, theme: none and theme: pandoc now render math as MathML, where Pandoc 3.10 left it as plain text. --- docs/output-formats/html-basics.qmd | 2 +- docs/prerelease/1.12/_highlights.qmd | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/output-formats/html-basics.qmd b/docs/output-formats/html-basics.qmd index a9286799f4..e3cce81380 100644 --- a/docs/output-formats/html-basics.qmd +++ b/docs/output-formats/html-basics.qmd @@ -124,7 +124,7 @@ Using the `css` option works well for simple tweaks to document appearance. If y ## LaTeX Equations -By default, LaTeX equations are rendered using [MathJax](https://www.mathjax.org/). Use the `html-math-method` option to choose another method. For example: +By default, LaTeX equations are rendered using [MathJax](https://www.mathjax.org/). HTML documents without the Bootstrap theme (`minimal: true`, `theme: none`, or `theme: pandoc`) render them as MathML instead. Use the `html-math-method` option to choose another method. For example: ``` yaml format: diff --git a/docs/prerelease/1.12/_highlights.qmd b/docs/prerelease/1.12/_highlights.qmd index 4da181b1ef..7cbd572ee7 100644 --- a/docs/prerelease/1.12/_highlights.qmd +++ b/docs/prerelease/1.12/_highlights.qmd @@ -1 +1,14 @@ -Quarto v1.12 was just released, nothing to see here -- yet! \ No newline at end of file +Quarto 1.12 updates Pandoc to 3.13, which brings: + +- [Typst labels](/docs/output-formats/typst.qmd#typst-labels) set with the `typst-label` attribute, and [`lang` on spans](/docs/output-formats/typst.qmd#text-language) in `typst` output. +- Support for Pandoc's `--math-method` option in `quarto render`. The `--katex`, `--mathjax`, `--mathml`, and `--webtex` options still work but print a deprecation warning. + +When upgrading: + +- **Bibliography files:** A duplicated key in a YAML [bibliography file](/docs/authoring/citations.qmd#bibliography-files), such as two `title` fields in one reference, now stops the render with an error. Previously the last value was used silently. Remove the duplicate key to render again. +- **Name sorting in bibliographies:** A lowercase particle written in a `family` name, such as `de Gaulle`, now stays part of the family name, so the entry sorts under "d". Use the `non-dropping-particle` field to keep the previous sorting. +- **Word cross-references:** In `docx` output, cross-reference targets are bookmarks with generated names. Links within the document still work, but a link from outside the document to a Quarto identifier, such as `report.docx#fig-plot`, no longer finds its target. +- **Word image widths:** In `docx` output, an image [width](/docs/authoring/figures.qmd#figure-sizing) given as a percentage is now a percentage of the text width, so small images can get larger. +- **HTML math without Bootstrap:** HTML documents without the Bootstrap theme (`minimal: true`, `theme: none`, or `theme: pandoc`) render [math](/docs/output-formats/html-basics.qmd#latex-equations) as MathML when no `html-math-method` is set, instead of plain text. Set `html-math-method: plain` for the previous output. +- **Divs around headings:** A div with an identifier that starts with a heading now renders as that heading's section, and the section takes the div's classes. CSS selectors such as `div.myclass > section` no longer match. Cross-references and table of contents links still target the heading. +- **Typst horizontal rules:** In `typst` output, horizontal rules are full-width. A Typst binary set through the `QUARTO_TYPST` environment variable must be version 0.15 or later. From 6ba679bc9b58d67ea250b47c2127cc08785f8c07 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 12 Nov 2026 18:29:51 +0100 Subject: [PATCH 4/5] Trim the Pandoc 3.13 notes in the 1.12 highlights Earlier highlights mention a Pandoc update in one line and keep the "When upgrading" list to changes users must act on. The list now keeps the changes that stop a render or visibly change output: duplicate bibliography keys, Word bookmark names, MathML in HTML without Bootstrap and the Typst 0.15 requirement for QUARTO_TYPST. Particle sorting, Word percent widths, Typst horizontal rules and divs wrapping a heading stay in the changelog, which the download page shows in full. --- docs/prerelease/1.12/_highlights.qmd | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/docs/prerelease/1.12/_highlights.qmd b/docs/prerelease/1.12/_highlights.qmd index 7cbd572ee7..0cd50a817e 100644 --- a/docs/prerelease/1.12/_highlights.qmd +++ b/docs/prerelease/1.12/_highlights.qmd @@ -1,14 +1,11 @@ -Quarto 1.12 updates Pandoc to 3.13, which brings: +Quarto 1.12 includes the following new features: -- [Typst labels](/docs/output-formats/typst.qmd#typst-labels) set with the `typst-label` attribute, and [`lang` on spans](/docs/output-formats/typst.qmd#text-language) in `typst` output. -- Support for Pandoc's `--math-method` option in `quarto render`. The `--katex`, `--mathjax`, `--mathml`, and `--webtex` options still work but print a deprecation warning. +- Pandoc updated to 3.13, which adds [Typst labels](/docs/output-formats/typst.qmd#typst-labels) with the `typst-label` attribute and [`lang` on spans](/docs/output-formats/typst.qmd#text-language) in `typst` output. +- `quarto render` supports Pandoc's `--math-method` option. The `--katex`, `--mathjax`, `--mathml`, and `--webtex` options are deprecated. When upgrading: -- **Bibliography files:** A duplicated key in a YAML [bibliography file](/docs/authoring/citations.qmd#bibliography-files), such as two `title` fields in one reference, now stops the render with an error. Previously the last value was used silently. Remove the duplicate key to render again. -- **Name sorting in bibliographies:** A lowercase particle written in a `family` name, such as `de Gaulle`, now stays part of the family name, so the entry sorts under "d". Use the `non-dropping-particle` field to keep the previous sorting. -- **Word cross-references:** In `docx` output, cross-reference targets are bookmarks with generated names. Links within the document still work, but a link from outside the document to a Quarto identifier, such as `report.docx#fig-plot`, no longer finds its target. -- **Word image widths:** In `docx` output, an image [width](/docs/authoring/figures.qmd#figure-sizing) given as a percentage is now a percentage of the text width, so small images can get larger. -- **HTML math without Bootstrap:** HTML documents without the Bootstrap theme (`minimal: true`, `theme: none`, or `theme: pandoc`) render [math](/docs/output-formats/html-basics.qmd#latex-equations) as MathML when no `html-math-method` is set, instead of plain text. Set `html-math-method: plain` for the previous output. -- **Divs around headings:** A div with an identifier that starts with a heading now renders as that heading's section, and the section takes the div's classes. CSS selectors such as `div.myclass > section` no longer match. Cross-references and table of contents links still target the heading. -- **Typst horizontal rules:** In `typst` output, horizontal rules are full-width. A Typst binary set through the `QUARTO_TYPST` environment variable must be version 0.15 or later. +- A duplicated key in a YAML [bibliography file](/docs/authoring/citations.qmd#bibliography-files) now stops the render with an error. +- In `docx` output, cross-reference targets are bookmarks with generated names, so a link from outside the document such as `report.docx#fig-plot` no longer finds its target. +- HTML documents without the Bootstrap theme (`minimal: true`, `theme: none`, or `theme: pandoc`) now render [math](/docs/output-formats/html-basics.qmd#latex-equations) as MathML. Set `html-math-method: plain` for the previous output. +- A Typst binary set through the `QUARTO_TYPST` environment variable must be version 0.15 or later. From 8347c5e30bf6379a959b4657bb728db2bf4bc131 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 12 Nov 2026 18:31:01 +0100 Subject: [PATCH 5/5] Add a rule for writing release highlights The 1.12 draft listed every Pandoc 3.13 change and described the div-around-heading change from the Pandoc release notes, missing the finalizer quarto-cli added for it. Earlier releases keep highlights short and leave details to the changelog shown on the download page. --- .claude/rules/release-highlights.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .claude/rules/release-highlights.md diff --git a/.claude/rules/release-highlights.md b/.claude/rules/release-highlights.md new file mode 100644 index 0000000000..7c0950a873 --- /dev/null +++ b/.claude/rules/release-highlights.md @@ -0,0 +1,14 @@ +--- +paths: + - "docs/prerelease/**/_highlights.qmd" +--- + +# Release Highlights + +`_highlights.qmd` is a short summary. The download page shows it above the full changelog, so details belong in the changelog. Match the length of earlier releases' highlights (compare `docs/prerelease/1.11/_highlights.qmd`). + +- Feature bullets: one or two sentences, linking to the docs section. +- A dependency update (Pandoc, Typst, Deno) is one line, such as "Pandoc updated to 3.13". Its user-facing additions go in that line or as feature bullets. +- "When upgrading" lists only changes users must act on: a render that now fails, or output that changes visibly. One sentence each, plus the fix when there is one. +- Edge cases, niche behavior changes and per-format details stay in the quarto-cli changelog. +- Before describing a behavior change that comes from a dependency, read the quarto-cli PR and changelog entry for it: Quarto often adjusts the result (a filter or finalizer), so the upstream release notes alone can misstate what users see.