Skip to content

Cairo: Switch back to character codes for mathtext#32101

Merged
tacaswell merged 1 commit into
matplotlib:mainfrom
QuLogic:fix-cairo-mathtext
Jul 23, 2026
Merged

Cairo: Switch back to character codes for mathtext#32101
tacaswell merged 1 commit into
matplotlib:mainfrom
QuLogic:fix-cairo-mathtext

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

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

@scottshambaugh scottshambaugh left a comment

Copy link
Copy Markdown
Contributor

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.

@tacaswell
tacaswell merged commit 0393f35 into matplotlib:main Jul 23, 2026
40 of 41 checks passed
@QuLogic
QuLogic deleted the fix-cairo-mathtext branch July 23, 2026 03:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

3 participants