Skip to content
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

🔧 More typst export improvements #1665

Merged
merged 9 commits into from
Nov 28, 2024
Merged

🔧 More typst export improvements #1665

merged 9 commits into from
Nov 28, 2024

Conversation

fwkoch
Copy link
Collaborator

@fwkoch fwkoch commented Nov 21, 2024

This PR just has a handful of typst improvements from working on formatting a PDF export:

Newly supported small typst features include:

  • ordered lists that do not start at 1
  • table cell background color

Areas where typst now matches other myst exports better:

  • cross-references maintain their children (e.g. [see here](#fig1) will render as "see here" in typst instead of the default "Figure 1")
  • table legends now appear below tables

Areas where it is easier to customize typst:

  • default "breakable" value for figures may be set in your source content
  • "columnStyle" can be defined on a per-table basis, allowing injecting specific column widths (and possibly other table styles)

Copy link

changeset-bot bot commented Nov 21, 2024

🦋 Changeset detected

Latest commit: d87637f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
myst-to-typst Patch
myst-cli Patch
mystmd Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Member

@rowanc1 rowanc1 left a comment

Choose a reason for hiding this comment

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

Want to keep the current functionality if there is empty link text.

const next = nextCharacterIsText(parent, node);
state.write(next ? `#[@${id}]` : `@${id}`);
state.write(`#link(<${id}>)[`);
state.renderChildren(node);
Copy link
Member

Choose a reason for hiding this comment

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

This means myst is doing the enumeration. I don't totally love that, but I think it is fine for now.

I think that in the future, we should not fun the filling enumeration transform, and do the default @${id} if there are no children.

@@ -35,4 +35,4 @@ cases:
- type: text
value: 'a for the first part of the figure!'
typst: |-
See #[@fig1]a for the first part of the figure!
See #link(<fig1>)[]a for the first part of the figure!
Copy link
Member

Choose a reason for hiding this comment

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

I think that this actually is the case where we want this to continue happening with an @id now.

Right now this is empty link text.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Nice, yeah, I was thinking about this - wasn't sure if we wanted MyST default text or typst default text. Thanks for fixing it up!

@rowanc1 rowanc1 merged commit 0dc62c7 into main Nov 28, 2024
7 checks passed
@rowanc1 rowanc1 deleted the feat/typst-customization branch November 28, 2024 23:11
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.

2 participants