Skip to content

Cairo: Switch back to character codes for mathtext#32101

Open
QuLogic wants to merge 1 commit into
matplotlib:mainfrom
QuLogic:fix-cairo-mathtext
Open

Cairo: Switch back to character codes for mathtext#32101
QuLogic wants to merge 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
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

1 participant