Title: [Bug]: Inconsistent rendering between backends when rendering Mathtext horizontal rule · Issue #23763 · matplotlib/matplotlib · GitHub
Open Graph Title: [Bug]: Inconsistent rendering between backends when rendering Mathtext horizontal rule · Issue #23763 · matplotlib/matplotlib
X Title: [Bug]: Inconsistent rendering between backends when rendering Mathtext horizontal rule · Issue #23763 · matplotlib/matplotlib
Description: Bug summary When the last item in a Mathtext Vlist is an Hrule, the AGG and SVG backends render the image differently. The difference is not obvious at small font sizes. To see this happen, we have to dive into Mathtext internals. An eas...
Open Graph Description: Bug summary When the last item in a Mathtext Vlist is an Hrule, the AGG and SVG backends render the image differently. The difference is not obvious at small font sizes. To see this happen, we have...
X Description: Bug summary When the last item in a Mathtext Vlist is an Hrule, the AGG and SVG backends render the image differently. The difference is not obvious at small font sizes. To see this happen, we have...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/23763
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[Bug]: Inconsistent rendering between backends when rendering Mathtext horizontal rule","articleBody":"### Bug summary\r\n\r\nWhen the last item in a Mathtext `Vlist` is an `Hrule`, the AGG and SVG backends render the image differently. The difference is not obvious at small font sizes.\r\n\r\nTo see this happen, we have to dive into Mathtext internals. An easy way is to modify fractions to end with the horizontal rule.\r\n\r\n### Code for reproduction\r\n\r\n```python\r\nimport matplotlib.pyplot as plt\r\nimport matplotlib._mathtext as _mathtext\r\n\r\nplt.rcdefaults()\r\n\r\ndef _genfrac(self, ldelim, rdelim, rule, style, num, den):\r\n state = self.get_state()\r\n thickness = state.get_current_underline_thickness()\r\n vlist = _mathtext.Vlist([num, _mathtext.Vbox(0, 2 * thickness), _mathtext.Hrule(state, thickness)])\r\n return [_mathtext.Hlist([vlist])]\r\n_mathtext.Parser._genfrac = _genfrac\r\n\r\n\r\n(fig, ax) = plt.subplots()\r\nplt.text(.5, .3, r'$\\dfrac{up}{down}$', size=100, ha='center', va='baseline')\r\nplt.axhline(.3)\r\nplt.savefig('Hrule_at_bottom.png')\r\nplt.savefig('Hrule_at_bottom.svg')\r\nplt.show()\r\n```\r\n\r\n\r\n### Actual outcome\r\n\r\n\r\n_PNG output_\r\n\r\n\r\n_SVG output_\r\n\r\n### Expected outcome\r\n\r\nBoth images should be identical.\r\n\r\n### Additional information\r\n\r\n_Why does it matter if it's related to a private module in Matplotlib?_\r\n\r\nThis is one of the things holding up https://github.com/matplotlib/matplotlib/pull/23616. `Vlist`s ending with an `Hrule` are not being positioned correctly.\r\n\r\n### Operating system\r\n\r\nUbuntu 20.04 LTS Focal Fossa on WSL\r\n\r\n### Matplotlib Version\r\n\r\n3.5.0.dev5855+gee2f68bdc9\r\n\r\n### Matplotlib Backend\r\n\r\nWXAgg\r\n\r\n### Python version\r\n\r\nPython 3.8.10\r\n\r\n### Jupyter version\r\n\r\n6.0.3\r\n\r\n### Installation\r\n\r\ngit checkout","author":{"url":"https://github.com/tfpf","@type":"Person","name":"tfpf"},"datePublished":"2022-08-28T06:34:09.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":5},"url":"https://github.com/23763/matplotlib/issues/23763"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:eeca974a-c73d-fedc-bb1d-b66c825aadeb |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | AE34:97529:5E6EF8:806058:6A51EC5B |
| html-safe-nonce | 0cda9f9412fa6981aac182579ad6372a6b084df04cb807a70577e33876bd24e6 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBRTM0Ojk3NTI5OjVFNkVGODo4MDYwNTg6NkE1MUVDNUIiLCJ2aXNpdG9yX2lkIjoiMjM5Mzk5NzIwMTg2Mjk0NTg4NCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 1fc8348a6b0c90f777e8a8bccdb08161fbbc5650f9a6def245730c38b1a0545f |
| hovercard-subject-tag | issue:1353263041 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/matplotlib/matplotlib/23763/issue_layout |
| twitter:image | https://opengraph.githubassets.com/938e63cf769c80f4ba6048d9fae9f1bfd334de718f8d4808029d0084c2323305/matplotlib/matplotlib/issues/23763 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/938e63cf769c80f4ba6048d9fae9f1bfd334de718f8d4808029d0084c2323305/matplotlib/matplotlib/issues/23763 |
| og:image:alt | Bug summary When the last item in a Mathtext Vlist is an Hrule, the AGG and SVG backends render the image differently. The difference is not obvious at small font sizes. To see this happen, we have... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | tfpf |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| turbo-cache-control | no-preview |
| go-import | github.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git |
| octolytics-dimension-user_id | 215947 |
| octolytics-dimension-user_login | matplotlib |
| octolytics-dimension-repository_id | 1385122 |
| octolytics-dimension-repository_nwo | matplotlib/matplotlib |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1385122 |
| octolytics-dimension-repository_network_root_nwo | matplotlib/matplotlib |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7aed05249554b889eb33d002851a973eebcc7e91 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width