quarto-dev / quarto-cli

Open-source scientific and technical publishing system built on Pandoc.
https://quarto.org
Other
3.9k stars 322 forks source link

Typst: Use something other than `columns` for page layout #7838

Open cwickham opened 11 months ago

cwickham commented 11 months ago

Prior to 1.4, columns is used to:

Specify length of lines in characters. This affects text wrapping in generated source code (see wrap). It also affects calculation of column widths for plain text tables.

(Honestly, I don't quite understand what this does...but from reading about wrap seems like it doesn't have any effect on rendered output).

In 1.4. columns is used to control the number of columns of text on a page for typst. It feels like the use cases are so different they shouldn't be lumped under the same key.

Maybe the typst option should be something like page-columns.

cderv commented 10 months ago

(Honestly, I don't quite understand what this does...but from reading about wrap seems like it doesn't have any effect on rendered output).

This option comes directly from Pandoc and have effect when using --wrap auto, and an Columns in Tables See https://pandoc.org/MANUAL.html#option--columns

But we do default to wrap: none https://github.com/quarto-dev/quarto-cli/blob/45a830ef3ae0a7b86f780e2820c7f6905349092c/src/format/formats-shared.ts#L122 So I guess it has no effect by default.

Here --columns is a flag, that is a valid Default file field in YAML (https://pandoc.org/MANUAL.html#general-writer-options-1)

In 1.4. columns is used to control the number of columns of text on a page for typst. It feels like the use cases are so different they shouldn't be lumped under the same key.

This is also a bad naming of Pandoc for Typst, as here columns is a variable that can be set through -V flag, or through YAML block. https://pandoc.org/MANUAL.html#variables-for-typst

In Quarto we do mix variables set in YAML , and default file field also set in YAML block, so indeed we have a name conflict.

Usually we don't rename pandoc variable, but maybe we do need to do it here...

Hope it helps get the context.