Fix positioning of wide mathtext accents.#31069
Merged
QuLogic merged 1 commit intomatplotlib:text-overhaulfrom Feb 6, 2026
Merged
Fix positioning of wide mathtext accents.#31069QuLogic merged 1 commit intomatplotlib:text-overhaulfrom
QuLogic merged 1 commit intomatplotlib:text-overhaulfrom
Conversation
Member
|
Subjectively, I'm not sure that the updated tests look better, but objectively "center over all the letters" seems more correct and matches what TeX does. |
tacaswell
approved these changes
Feb 5, 2026
QuLogic
approved these changes
Feb 6, 2026
Member
|
I'll push these images to the upcoming branch and rebase this without them in a minute. |
A wide accent over more than one character should just be centered over the underlying box. In any case this works better than the current strategy of shifting by an amount depending on the box's width (which results in absurdly large shifts for wide boxes). When positioning over a single character the behavior is different -- TeX uses specific font metrics info for that case, and we can try rendering as combining characters instead (not done in this PR).
wavebyrd
pushed a commit
to wavebyrd/matplotlib
that referenced
this pull request
Mar 13, 2026
Fix positioning of wide mathtext accents.
QuLogic
added a commit
to QuLogic/matplotlib
that referenced
this pull request
Apr 10, 2026
This includes images changes for the following pull requests / commits: * [Fix center of rotation with rotation_mode='anchor'](matplotlib#29199) (c44db77) * [Remove ttconv backwards-compatibility code](matplotlib#30145) (8caff88) * [Remove kerning_factor from tests](matplotlib#29816) (7b4d725) * [Set text hinting to defaults](matplotlib#29816) (8255ae2) * [Update FreeType to 2.13.3](matplotlib#29816) (89c054d) * [Implement text shaping with libraqm](matplotlib#30000) (b0ded3a, 9813523) * [Add language parameter to Text objects](matplotlib#29794) (7ce8eae) * [Fix auto-sized glyphs with BaKoMa fonts](matplotlib#29936) (3ba2c13) * [pdf: Improve text with characters outside embedded font limits](matplotlib#30512) (b70fb88, 6cedcf7) * [Prepare `CharacterTracker` for advanced font features](matplotlib#30608) (8274e17, 70dc388, df670cf, ed5e074) * [Add font feature API to Text](matplotlib#29695) (972a688) * [Fix spacing in r"$\max f$"](matplotlib#30715) (4a99a83) * [Implement libraqm for vector outputs](matplotlib#30607) (bd17cd4) * [Drop the FT2Font intermediate buffer](matplotlib#30059) (9d7d7b4) * [Rasterize dvi files without dvipng](matplotlib#30039) (7627118) * [Update bundled FreeType and HarfBuzz libraries](matplotlib#30938) (a161658, 9619bcc) * [Fix positioning of wide mathtext accents](matplotlib#31069) (c2fa7ba) * [Refactor RendererAgg.draw_{mathtext,text,tex} to use same base algorithm](matplotlib#31085) (931bcf3) * [Implement TeX's fraction and script alignment](matplotlib#31046) (94ff452, 4bfa0f9, 1cd8510) * [Fix confusion between text height and ascent in metrics calculations](matplotlib#31107) (60f2310) * [mathtext: Fetch quad width & axis height from font metrics](matplotlib#31110) (692df3f, 383028b) * [mathtext: add mathnormal and distinguish between normal and italic family](matplotlib#31121) (a6913f3) * [ENH: Ignore empty text for tightbbox](matplotlib#31285) (d772043) * [Drop axis_artist tickdir image compat, due to text-overhaul merge](matplotlib#31281) (2057583) * [text: Use font metrics to determine line heights](matplotlib#31291) (3ab6a27, d961462, 97f4943) * [ps/pdf: Override font height metrics to support AFM files](matplotlib#31371) (e0913d4) * [TST: Cleanup back-compat code in tests touched by text overhaul](matplotlib#31295) (7c33379) * [TST: Set tests touched by text overhaul to mpl20 style](matplotlib#31300) (41c4d8d)
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
A wide accent over more than one character should just be centered over
the underlying box. In any case this works better than the current
strategy of shifting by an amount depending on the box's width (which
results in absurdly large shifts for wide boxes).
When positioning over a single character the behavior is different --
TeX uses specific font metrics info for that case, and we can try
rendering as combining characters instead (not done in this PR; see #4561 (comment), #23257, etc.).
See https://tex.stackexchange.com/a/47064 for a description of TeX's behavior.
Closes #19299.
The reference images are included as a separate commit for reference, but I guess they should be stripped before merging, as usual.
figtext(.5, .5, r"$\widebar{foobarbazquux}$")used to givebut is now
PR summary
PR checklist