Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

mcanouil
Copy link
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.

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

posit-snyk-bot commented Jun 11, 2025

🎉 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)

@@ -40,6 +44,15 @@ function landscape_div()
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
Collaborator

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
Collaborator

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
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.

Copy link
Contributor

@gordonwoodhull gordonwoodhull Jun 13, 2025

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
Copy link
Collaborator

cscheid commented Jun 13, 2025

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

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