quarto-dev / quarto-dev/quarto-cli
Captions with multiple paragraphs are not handled correctly
@cscheid is already working on this.
Since Jul 8, 2023.
- Dominant language
- JavaScript
- Stars
- 6k
- Forks
- 458
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 41
Description
Bug description
A way to create a figure with a long caption is the following:
::: {#fig-test}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in dignissim massa. Sed scelerisque dignissim ipsum, ac suscipit eros sodales ac. Integer congue sem sit amet vestibulum gravida. Pellentesque vestibulum, nibh et aliquam viverra, nunc diam luctus erat, in hendrerit dui mauris id sem. Proin accumsan turpis nec ligula fringilla, vitae congue tortor ultrices. Morbi volutpat, arcu et volutpat facilisis, ipsum nulla suscipit magna, a blandit elit ex sit amet dui. Phasellus finibus augue urna, eget convallis est sollicitudin vitae. Pellentesque sed aliquet mauris. Donec a turpis velit. Morbi interdum bibendum tempor.
:::
It works well when the caption is made up of only one paragraph.
If the caption is made up of multiple paragraphs, only the last one is actually put into the caption. I tried rendering in pdf and html and there is the issue in both cases.
Steps to reproduce
A minimum working example is:
---
title: "test-fig"
---
## Quarto
Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see <https://quarto.org>.
::: {#fig-test}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in dignissim massa. Sed scelerisque dignissim ipsum, ac suscipit eros sodales ac. Integer congue sem sit amet vestibulum gravida. Pellentesque vestibulum, nibh et aliquam viverra, nunc diam luctus erat, in hendrerit dui mauris id sem. Proin accumsan turpis nec ligula fringilla, vitae congue tortor ultrices. Morbi volutpat, arcu et volutpat facilisis, ipsum nulla suscipit magna, a blandit elit ex sit amet dui. Phasellus finibus augue urna, eget convallis est sollicitudin vitae. Pellentesque sed aliquet mauris. Donec a turpis velit. Morbi interdum bibendum tempor.
Praesent condimentum dolor non aliquet aliquet. Suspendisse potenti. Donec mollis velit id auctor convallis. Integer sed dignissim arcu, in faucibus ipsum. Nullam elementum vulputate erat. Suspendisse mattis, neque eget placerat suscipit, eros justo fermentum libero, sed ullamcorper tortor ipsum ut orci. Vivamus scelerisque fermentum magna et vulputate. Sed nunc purus, tincidunt vitae lacus vitae, dictum mollis risus. Donec semper faucibus commodo. Morbi efficitur massa nisl, quis scelerisque nunc iaculis molestie. Maecenas et turpis nec risus fermentum vehicula ac id nisi. Nam lacus neque, rhoncus non nibh quis, elementum pulvinar ante. Quisque lectus turpis, posuere eu pellentesque sed, feugiat sed eros. Cras sit amet magna nisi. Vestibulum eget volutpat ipsum, sit amet aliquam neque.
:::
Expected behavior
The caption should contains all the paragraphs.
Actual behavior
The rendering process does not produce any errors but the rendered document is not the expected one.
If the caption is made up of multiple paragraphs, all paragraphs, except the last one, are placed between the figure and the caption as standard paragraphs, only the last one is actually put into the caption.
HTML rendering:
<figure class="figure">
<p><img src="quarto.png" class="img-fluid figure-img"></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in dignissim massa. Sed scelerisque dignissim ipsum, ac suscipit eros sodales ac. Integer congue sem sit amet vestibulum gravida. Pellentesque vestibulum, nibh et aliquam viverra, nunc diam luctus erat, in hendrerit dui mauris id sem. Proin accumsan turpis nec ligula fringilla, vitae congue tortor ultrices. Morbi volutpat, arcu et volutpat facilisis, ipsum nulla suscipit magna, a blandit elit ex sit amet dui. Phasellus finibus augue urna, eget convallis est sollicitudin vitae. Pellentesque sed aliquet mauris. Donec a turpis velit. Morbi interdum bibendum tempor.</p>
<figcaption class="figure-caption">Figure 1: Praesent condimentum dolor non aliquet aliquet. Suspendisse potenti. Donec mollis velit id auctor convallis. Integer sed dignissim arcu, in faucibus ipsum. Nullam elementum vulputate erat. Suspendisse mattis, neque eget placerat suscipit, eros justo fermentum libero, sed ullamcorper tortor ipsum ut orci. Vivamus scelerisque fermentum magna et vulputate. Sed nunc purus, tincidunt vitae lacus vitae, dictum mollis risus. Donec semper faucibus commodo. Morbi efficitur massa nisl, quis scelerisque nunc iaculis molestie. Maecenas et turpis nec risus fermentum vehicula ac id nisi. Nam lacus neque, rhoncus non nibh quis, elementum pulvinar ante. Quisque lectus turpis, posuere eu pellentesque sed, feugiat sed eros. Cras sit amet magna nisi. Vestibulum eget volutpat ipsum, sit amet aliquam neque.</figcaption>
</figure>
LaTeX rendering:
\begin{figure}
{\centering
\includegraphics{quarto.png}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in
dignissim massa. Sed scelerisque dignissim ipsum, ac suscipit eros
sodales ac. Integer congue sem sit amet vestibulum gravida. Pellentesque
vestibulum, nibh et aliquam viverra, nunc diam luctus erat, in hendrerit
dui mauris id sem. Proin accumsan turpis nec ligula fringilla, vitae
congue tortor ultrices. Morbi volutpat, arcu et volutpat facilisis,
ipsum nulla suscipit magna, a blandit elit ex sit amet dui. Phasellus
finibus augue urna, eget convallis est sollicitudin vitae. Pellentesque
sed aliquet mauris. Donec a turpis velit. Morbi interdum bibendum
tempor.
}
\caption{\label{fig-test}Praesent condimentum dolor non aliquet aliquet.
Suspendisse potenti. Donec mollis velit id auctor convallis. Integer sed
dignissim arcu, in faucibus ipsum. Nullam elementum vulputate erat.
Suspendisse mattis, neque eget placerat suscipit, eros justo fermentum
libero, sed ullamcorper tortor ipsum ut orci. Vivamus scelerisque
fermentum magna et vulputate. Sed nunc purus, tincidunt vitae lacus
vitae, dictum mollis risus. Donec semper faucibus commodo. Morbi
efficitur massa nisl, quis scelerisque nunc iaculis molestie. Maecenas
et turpis nec risus fermentum vehicula ac id nisi. Nam lacus neque,
rhoncus non nibh quis, elementum pulvinar ante. Quisque lectus turpis,
posuere eu pellentesque sed, feugiat sed eros. Cras sit amet magna nisi.
Vestibulum eget volutpat ipsum, sit amet aliquam neque.}
\end{figure}
Please note that, if you want to use multiparagraph captions in latex with the caption package, you also have to specify an alternative short caption. From the docs of the caption package:
If your caption contains more than one paragraph, you have to specify an alternative caption for the list-of-figures using the optional argument of \caption or \captionof, otherwise you will get an error message.
Your environment
- IDE: VSCode 1.80
- Quarto extension 1.89.0
- Windows 10 22H2
Quarto check output
[>] Checking versions of quarto binary dependencies...
Pandoc version 3.1.1: OK
Dart Sass version 1.55.0: OK
[>] Checking versions of quarto dependencies......OK
[>] Checking Quarto installation......OK
Version: 1.3.433
Path: C:\ProgramData\chocolatey\lib\quarto\tools\bin
CodePage: 1252
[>] Checking basic markdown render....OK
[>] Checking Python 3 installation....(None)
Unable to locate an installed version of Python 3.
Install Python 3 from https://www.python.org/downloads/
[>] Checking R installation...........OK
Version: 4.3.1
Path: C:/PROGRA~1/R/R-43~1.1
LibPaths:
- C:/Program Files/R/R-4.3.1/library
knitr: (None)
rmarkdown: (None)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.