GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Cairo: Switch back to character codes for mathtext by QuLogic · Pull Request #32101 · matplotlib/matplotlib

Conversation

@QuLogic

@QuLogic QuLogic commented Jul 22, 2026

Copy link
Copy Markdown
Member

PR summary

Since f630b48, the Cairo backend was switched to use glyph indices for mathtext, just as the Agg backend.

Unfortunately, neither Pycairo nor cairocffi expose anything other than the toy font face API. This means the Cairo backend can only access fonts by family name and not explicit path. Apparently, the version of DejaVu Sans that we ship may differ from the system copy WRT glyph indices, so we need to switch back to character codes, which are standardized and won't cause the wrong glyph to be rendered accidentally.

I can't really add a test, as in order to break, this requires a system-installed copy of DejaVu Sans of the right version that it has different glyph indices.

Fixes #32084

AI Disclosure

None

PR checklist

  • "closes #0000" is in the body of the PR description to link the related issue
  • new and changed code is tested
  • [n/a] Plotting related features are demonstrated in an example
  • [n/a] New Features and API Changes are noted with a directive and release note
  • [n/a] Documentation complies with general and docstring guidelines

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@QuLogic
Cairo: Switch back to character codes for mathtext
42e0d6b
Since f630b48, the Cairo backend was
switched to use glyph indices for mathtext, just as the Agg backend.

Unfortunately, neither Pycairo nor cairocffi expose anything other than
the toy font face API. This means the Cairo backend can only access
fonts by family name and not explicit path. Apparently, the version of
DejaVu Sans that we ship may differ from the system copy WRT glyph
indices, so we need to switch back to character codes, which are
standardized and won't cause the wrong glyph to be rendered accidentally.

Fixes matplotlib#32084
@QuLogic QuLogic added this to the v3.11.2 milestone Jul 22, 2026
@github-actions github-actions Bot added the backend: cairo label Jul 22, 2026
scottshambaugh
scottshambaugh approved these changes Jul 23, 2026
View reviewed changes

@scottshambaugh scottshambaugh left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

My bundled / system dejavusans math glyphs indices are off by one, and I tested this locally as resolving it.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@tacaswell
tacaswell merged commit 0393f35 into matplotlib:main Jul 23, 2026
40 of 41 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@meeseeksmachine meeseeksmachine mentioned this pull request Jul 23, 2026
Backport PR #32101 on branch v3.11.x (Cairo: Switch back to character codes for mathtext) #32102
Merged
@QuLogic
QuLogic deleted the fix-cairo-mathtext branch July 23, 2026 03:15
QuLogic pushed a commit that referenced this pull request Jul 23, 2026
@tacaswell @meeseeksmachine
Backport PR #32101: Cairo: Switch back to character codes for mathtext
9dec376
QuLogic added a commit that referenced this pull request Jul 23, 2026
@QuLogic
Merge pull request #32102 from meeseeksmachine/auto-backport-of-pr-32…
8103dae
…101-on-v3.11.x

Backport PR #32101 on branch v3.11.x (Cairo: Switch back to character codes for mathtext)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@scottshambaugh scottshambaugh scottshambaugh approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

backend: cairo

Projects

None yet

Milestone

v3.11.2

Development

Successfully merging this pull request may close these issues.

[Bug]: Exponential numbers on axis look like 10Σ² instead of 10⁻² with backend_gtk3cairo

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@QuLogic @scottshambaugh @tacaswell
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.