Fixes#7473
Previously, `figclass`es weren't being extracted correctly.
`figclass` and `align` annotations are now implemented following the rst docs: these options apply to the figure while other options are passed onto the underlying image.
blocks, unless there is no other option.
Mainly this is motivated by #9677. If we put raw tex in a
raw_attribute block, then the macros don't get interpreted
when it is read again by pandoc's markdown reader.
Previously a Div with an identifier derived from the filename
would be added around the contents of each file. This caused
problems for "chunking" files into chapters, e.g. in EPUB.
We no longer add the surrounding Div. This cooperates better with
chunking. Note, however, that if you have relied on the old
behavior to link to the beginning of the contents of a file using
its filename as identifier, that will no longer work.
Closes#8741.
When the last parPart before a header was a bookmark, no span with an
anchor was added for a bookmark in the header. But the function that
adds header anchors to the anchor map, needs a span with an anchor.
So this commit adds that span.
The Typst writer will pass on specially marked attributes as raw Typst
parameters on selected elements. This allows extensive customization
using filters.
An attribute with key `typst:PROP` will set the PROP parameter on
the corresponding Typst element.
An attribute with key `typst:text:PROP` will set a parameter on a Typst
`#set text()` rule or a text element.
The feature has been implemented for the following elements:
* span text
* div and div text
* table and table text
* table cell and table cell text
It would be possible to support more elements in the future.
A separate document has been added that provides extensive
documentation and examples of the use of this feature.
This applies to both fenced and HTML-ish varieties.
Otherwise we face an exponential performance problem with
backtracking.
This also accords with the behavior of the `fenced_divs`
extension in commonmark.
A warning is issued when a div is implicitly closed.
Closes#9635.
soul commands (`ul`, `hl`, `st`) are very fragile and the math
must be handled specially. In #9597 we improved this for strikethrough
but omitted the other soul environments. This patch generalizes the
fix and a related fix for verbatim (#1294, #5529).
- Link text cannot contain formatting (e.g., `//` is not italics).
Closes#9630.
- An explicitly empty link text (`[[url|]]`) works the same as an omitted
link text. Closes#9632.
* Typst writer: support Typst 0.11 table features.
- colspans
- rowspans
- cell alignment overrides
- relative column widths
- header and footer
- multiple table bodies with intermediate headers
Row heads are not yet supported.
The default typst template has been modified so that tables
don't have lines by default. As is standard with pandoc, we only
add a line under a header or over a footer. However, a different
default stroke pattern can easily be added in a template.
Closes#9588.
Previously the parser just failed if the column width
specified in `p{}` wasn't a multiple of `\linewidth`.
This led to cases where content was skipped.
Now we treat these as ColWidthDefault and silently
parse the table.
A future improvement could be to guess relative column
widths from the dimensions specified, based on a default
line width.
Closes#9579.
Previously we computed width/heigth for images that didn't have
size information, because otherwise typst would expand the image
to fit page width. This typst behavior has changed in 0.11.
This change fixes a bug in which images would sometimes overflow
page margins, depending on their intrinsic size.
Closes#9236.
Make tokenization sensitive to `\makeatletter`/`\makeatother`.
Previously we just always treated `@` as a letter. This led
to bad results, e.g. with the sequence `\@`. E.g.,
`a\@ b` would parse as "ab" and `a\@b` as "a".
Closes#9555.
Screen readers don't seem to pay attention to an alt attribute on
svg. But they do read the aria-label. So if there's an alt
attribute, we copy its contents to aria-label, unless there is
already an aria-label. This will make pandoc's output with
`--embed-resources` more accessible.
Closes#9525.