Previously we relied on graphicx internals and made global
changes to Gin to force images to be resized if they exceed
textwidth. This approach is brittle and caused problems
with `\includesvg` (see #9660).
The new approach uses a new macro `\pandocbounded` that is
now defined in the LaTeX template. (Thanks here to Falk Hanisch in
https://github.com/mrpiggi/svg/issues/60.)
The LaTeX writer has been changed to enclose `\includegraphics`
and `\includesvg` commands in this macro when they don't explicitly
specify a width or height.
In addition, the writer now adds `keepaspectratio` to the
`\includegraphics` or `\includesvg` options if `height` is specified
without width, or vice versa. Previously, this was set in the preamble
as a global option.
Compatibility issues:
- If custom templates are used with the new LaTeX writer, they will have
to be updated to include the new `\pandocbounded` macro, or an error
will be raised because of the undefined macro.
- Documents that specify explicit dimensions for an image may render
differently, if the dimensions are greater than the line width or
page height. Previously pandoc would shrink these images to fit,
but the new behavior takes the specified dimensions literally.
In addition, pandoc previously always enforced `keepaspectratio`,
even when width and height were both specified, so images with
width and height specified that do not conform to their intrinsic
aspect ratio will appear differently.
Closes#9660.
...and only include it if `english` or `german` is used.
Since 3d8f011, the babel language is not specified as a
class option any more; so now we need to explicitly specify
the language option when we load `selnolig`. Only `german`
and `english` are valid, so we construct the variable
`selnolig-langs` in the writer and include `selnolig` if it
is nonempty.
This should restore proper ligature suppression when
lualatex is used.
Closes#9863. Supersedes #9864.
Thanks to @fkohrt for the initial fix.
...for title, author, date, email.
Fixes#9823 (escaped `\@` in rendered email).
Allows formatting in title, author, date, and email fields.
Since the PDF metadata requires a string, and typst only
converts the title to a string (not the authors), we use
a small function content-to-string to do this conversion.
Background: https://github.com/typst/typst/issues/2196
The `--reference-doc` option allows customization of styles in docx
output, but it does not allow one to adjust the content of the output
(e.g., changing the order in which metadata, the table of contents,
and the body of the document are displayed), or adding boilerplate
text before or after the document body. For these changes, one can
now use `--template` with an OpenXML template. (See the default
`openxml` template for a sample.)
This patch also allows `--include-before-body` and
`--include-after-body` to be used with `docx` output.
The included files must be OpenXML fragments suitable for
inclusion in the document body.
Closes#8338 (`--include-before-body`, `--include-after-body`).
Closes#9069 (a custom template can be used to omit the
title page).
Closes#7256.
Closes#2928.
Including a title graphic on a beamer template might require some
options, like e.g. `height=1.5cm` to ensure some image will fit at its
place in a given template.
* 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.
`block-headings: true` seems to break unnumbered paragraphs and subparagraphs. This is due to the fact, that the unnumbered version uses the star macros \paragraph* and \subparagraph*. See issue #6018 for details.
The PR replaces polyfill.io with cdnjs.cloudflare.com/polyfill.
polyfill.io has been acquired by Funnull, and the service has
become unstable.
This is essentially a cleaned up version of PR #2384 by @SukkaW;
see the PR for more information.
Djot is a light markup syntax (https://djot.net).
This patch adds djot as input and output formats.
API changes:
Add Text.Pandoc.Readers.Djot
Add Text.Pandoc.Writers.Djot
These styles were going into an office:styles element in content.xml,
but this is invalid. Instead they must go in styles.xml. See #9287.
The variable `highlighting-styles` no longer has any effect on
the default opendocument template, and highlighting styles are
not included in opendocument output.
Error from OOXMLValidator:
```
{
"Description": "The required attribute 'val' is missing.",
"Path": {
"NamespacesDefinitions": [
"xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\""
],
"Namespaces": {
},
"XPath": "/w:document[1]/w:body[1]/w:tbl[1]/w:tr[1]/w:trPr[1]/w:cnfStyle[1]",
"PartUri": "/word/document.xml"
},
"Id": "Sch_MissRequiredAttribute",
"ErrorType": "Schema"
},
```
This is a bitmask where the first bit means 'first row', which is set as
an attribute already.
Signed-off-by: Edwin Török <edwin@etorok.net>
According to `wml.xsd` the order must be:
```
<xsd:sequence>
<xsd:element name="tcBorders" type="CT_TcBorders" minOccurs="0" maxOccurs="1"/>
[...]
<xsd:element name="vAlign" type="CT_VerticalJc" minOccurs="0"/>
```
Signed-off-by: Edwin Török <edwin@etorok.net>
There was an extra `>` which showed up as "character content" in the XML:
```
/tmp/styles-pretty.xml:113: element rPr: Schemas validity error : Element '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}rPr': Character content other than whitespace is not allowed because the content type is 'element-only'.
```
Signed-off-by: Edwin Török <edwin@etorok.net>
Typst now supports CSL for its native citation engine, so pandoc
should use a specified `csl` style in the template, falling back to
`bibliographystyle` if `csl` is not specified.
https://typst.app/docs/reference/meta/bibliography/
This package produces better PDF bookmarks than hyperref
and does it on the first pass.
As a consequence, we now default to running LaTeX only
once in producing a PDF (instead of twice). If a table
of contents is present, we still have to run three times
to get the page numbers.