FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

[Bug]: Eqnarray in AnchoredText results in misplaced text (new in v3.6.0) · Issue #23977 · matplotlib/matplotlib · GitHub

Repository navigation

[Bug]: Eqnarray in AnchoredText results in misplaced text (new in v3.6.0) #23977

Closed

Description

Bug summary

The title pretty much sums it up. I have no idea if this only happens for the eqnarray environment and AnchoredText or for all Latex text and other boxes, e.g. legends, but also don't have the time to test it myself. I'll simply keep using v3.5.3, but I hope this helps other people get to the root cause.

Code for reproduction

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
from matplotlib.offsetbox import AnchoredText

v = matplotlib.__version__
fig, ax = plt.subplots()
x = np.linspace(0, 2*np.pi)
y = np.sin(x)
plt.plot(x, y)

text = ('\\begin{eqnarray*}'
        f'foo \\\\'
        f'{v=} \\\\'
        '\\end{eqnarray*}')
at = AnchoredText(text, loc='upper left', prop={'usetex': True})
# at = AnchoredText(text, loc='upper left')
ax.add_artist(at)
plt.show()

Actual outcome

Expected outcome

Additional information

I should mention that when usetex is set to False, the text is displayed just fine (by text I mean the code, obviously it doesn't compile), so I can narrow it down at least that much.

Operating system

Windows 11

Matplotlib Version

3.6.0

Matplotlib Backend

QtAgg

Python version

Python 3.10.1

Jupyter version

No response

Installation

pip

Activity

  1. added this to the v3.6.1 milestone on Sep 21, 2022
  2. dstansby commented on Sep 21, 2022

    Member

    Looking into this now - bisects to c973552

  3. dstansby commented on Sep 21, 2022

    Member

    Had a quick look and can't work out what the fix is - perhaps @anntzer will have more luck as you wrote the failing commit.

  4. anntzer commented on Sep 23, 2022

    Contributor

    I can confirm the issue and repro it even more simply with e.g.

    import matplotlib.pyplot as plt
    plt.text(.5, .5, r'$$E = mc^2$$', usetex=True)
    plt.axvline(.5)
    plt.axhline(.5)
    plt.show()

    the basic problem being that we don't get a baseline mark at the baseline of the last line of displaymath mode, but only at the baseline of the (empty) following paragraph.

    Probably there's some solution which involves fiddling with TeX internals (and I still think the general approach is the correct one), but it doesn't look obvious to fix, so possibly in the short term #22360 should be reverted for now and thus also #22361 (first), and #22350 (which was the original issue that triggered these changes) reopened. Apologies for the disruption.

  5. changed the title [-][Bug]: Eqnarray in AchoredText results in misplaced text (new in v3.6.0)[/-] [+][Bug]: Eqnarray in AnchoredText results in misplaced text (new in v3.6.0)[/+] on Sep 28, 2022
  6. QuLogic commented on Oct 6, 2022

    Member

    Should be fixed by the revert in #24047.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions


      Back | FazBrowse Home | New Git URL