Skip to content

feat: allow specification of height and width for landscape - #12921

Closed
mcanouil wants to merge 2 commits into
quarto-dev:mainfrom
mcanouil:feat/allow-height-width-landscape
Closed

mcanouil wants to merge 2 commits into
quarto-dev:mainfrom
mcanouil:feat/allow-height-width-landscape

Conversation

@mcanouil

@mcanouil mcanouil commented Jun 11, 2025 •

Copy link
Copy Markdown
Collaborator

Introduce the ability to set custom height and width for landscape sections in DOCX format, enhancing document formatting flexibility. Default values are provided if none are specified.

  • Add tests
  • Add changelog entry

Investigate #12917

@mcanouil mcanouil self-assigned this Jun 11, 2025
@posit-snyk-bot

posit-snyk-bot commented Jun 11, 2025 •

Copy link
Copy Markdown
Collaborator

🎉 Snyk checks have passed. No issues have been found so far.

✅ security/snyk check is complete. No issues have been found. (View Details)

✅ license/snyk check is complete. No issues have been found. (View Details)

if div.classes:includes('landscape') then
if FORMAT:match 'docx' then
-- DOCX-specific landscape orientation
local height = div.attributes.height or "8.5in"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand why you added unit handling here, but this makes me think that we need to figure out how to get unit handling to behave uniformly across Quarto.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gordonwoodhull What do you think if we took the code you wrote in src/resources/filters/modules/typst_css.lua and made it a general-purpose Lua module to be used across our filters? It would require a bit of refactoring, but I think it's worth it.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feel free to take over the PR.
It was mostly a proof of concept of what it could be.

@gordonwoodhull gordonwoodhull Jun 13, 2025 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure! The routines in typst_css.lua

  1. parse a CSS length with suffix
  2. output the Typst equivalent of a parsed length, where 5 out of 43 length units pass through, and two are translated (px and the pseudo-unit %).

I guess what we'd do is move the parse functions to, like, a parse_css module, and then write length output functions for other output formats, where docx always outputs to twips with no suffix.

And we could leave the door open to generalize colors in the same way later.

@cscheid

cscheid commented Jun 13, 2025

Copy link
Copy Markdown
Member

Thanks! We need a changelog entry and tests as well.

@cscheid cscheid added this to the v1.9 milestone Aug 19, 2025
@cscheid cscheid modified the milestones: v1.9, v1.10 Feb 17, 2026
@mcanouil mcanouil modified the milestones: v1.10, v1.11 Jul 30, 2026
@mcanouil

Copy link
Copy Markdown
Collaborator Author

I'm closing this pull request without a replacement.

While reworking it, I found that Quarto doesn't set the page size of a Word document at all, so Word falls back to its regional default (details in #12917).
Changing the landscape default would move the mismatch from one group of users to another.
Explicit sizes would still be useful, but they'd need integer twips and other names, because width and height already mean layout-cell size on divs.

I've suggested a documentation note with a raw OpenXML workaround on #12917 instead.

@mcanouil mcanouil closed this Oct 26, 2026
@mcanouil
mcanouil deleted the feat/allow-height-width-landscape branch October 28, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants