-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Rewrite MathTex to make it more robust regarding splitting #4515
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
Open
henrikmidtiby
wants to merge
57
commits into
ManimCommunity:main
Choose a base branch
from
henrikmidtiby:MathTexFromScratch
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Rewrite MathTex to make it more robust regarding splitting #4515
henrikmidtiby
wants to merge
57
commits into
ManimCommunity:main
from
henrikmidtiby:MathTexFromScratch
+226
−140
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
updates: - [github.com/astral-sh/ruff-pre-commit: v0.14.7 → v0.14.8](astral-sh/ruff-pre-commit@v0.14.7...v0.14.8) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Contributor
Author
…of curly braces around the extracted part
This was
linked to
issues
Jan 13, 2026
… braces for substrings_to_isolate to work
…ble curly braces in the example. This would otherwise trigger MathTex to split the string at that location.
Contributor
Author
|
I have located a minor issue related to the "Using text" guide. In the example |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
issue:bug
Something isn't working... For use in issues
maintenance
refactoring, typos, removing clutter/dead code, and other code quality improvements
pr:bugfix
Bug fix for use in PRs solving a specific issue:bug
refactor
Refactor or redesign of existing code
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.


Overview: What does this pull request change?
This PR changes a large part of the implementation of the MathTex class.
The reason is to deal with the issues related to splitting the tex string and then try to match the generated objects with parts of the original tex string.
The idea for the PR is based on this discussion on discord.
https://discord.com/channels/581738731934056449/1406977902788218892
Motivation and Explanation: Why and how do your changes improve the library?
This PR changes how
MathTexobjects are created / rendered.To illustrate the changes in the process, please look at the following example
of calling
MathTex.The first step in rendering the MathTex equation, is to join the three separate strings to a single string and add some markup to the string that will allow manim to extract certain parts of the equation afterwards. Each of the three input strings are put in the following markup.
This ends up looking like the following:
This allows us to access a named group in the formed svg file corresponding to each of the three tex strings.
For each string, the elements of
substrings_to_isolateis also located, and marked up with a similar markup.E.g. the
ain the equation ends up like this, where the element is placed in the named group 'unique000ss'.All there marked up strings are joined to the following string (newlines were added to increase readability).
This string is then saved to a
texfile and converted to first a.dviand then a.svgfile using thelatexanddvisvgmcommand line tools.Finally the svg file is loaded by a
SVGMobjectfrom which the named groups can be accessed as demonstrated here.The full code for this example is provided here
and it renders as follows

Links to added or changed documentation pages
Further Information and Comments
This PR is an extension of #4473 "Maintain groups when importing svg files"
Reviewer Checklist