Title: Vertical positioning in mathtext fraction rendering could be improved · Issue #18389 · matplotlib/matplotlib · GitHub
Open Graph Title: Vertical positioning in mathtext fraction rendering could be improved · Issue #18389 · matplotlib/matplotlib
X Title: Vertical positioning in mathtext fraction rendering could be improved · Issue #18389 · matplotlib/matplotlib
Description: Bug report Bug summary The positioning by mathtext of the numerator, denominator, and fraction bar are less than optimal. Code for reproduction from pylab import * for usetex, y in [(False, .4), (True, .6)]: figtext(.1, y, r"$\frac{1}{1}...
Open Graph Description: Bug report Bug summary The positioning by mathtext of the numerator, denominator, and fraction bar are less than optimal. Code for reproduction from pylab import * for usetex, y in [(False, .4), (T...
X Description: Bug report Bug summary The positioning by mathtext of the numerator, denominator, and fraction bar are less than optimal. Code for reproduction from pylab import * for usetex, y in [(False, .4), (T...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/18389
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Vertical positioning in mathtext fraction rendering could be improved","articleBody":"\u003c!--To help us understand and resolve your issue, please fill out the form to the best of your ability.--\u003e\r\n\u003c!--You can feel free to delete the sections that do not apply.--\u003e\r\n\r\n### Bug report\r\n\r\n**Bug summary**\r\n\r\n\u003c!--A short 1-2 sentences that succinctly describes the bug--\u003e\r\nThe positioning by mathtext of the numerator, denominator, and fraction bar are less than optimal.\r\n\r\n**Code for reproduction**\r\n\r\n```python\r\nfrom pylab import *\r\nfor usetex, y in [(False, .4), (True, .6)]:\r\n figtext(.1, y, r\"$\\frac{1}{1}+\\frac{x}{x}=\\frac{y}{y}+\\frac{t}{t}$\", usetex=usetex)\r\n figtext(.4, y, r\"$\\frac{1}{1}+\\frac{x}{x}=\\frac{y}{y}+\\frac{t}{t}$\", usetex=usetex, size=42)\r\nax = axes([0, 0, 1, 1])\r\nax.axhline(.65, lw=1)\r\nax.axhline(.56, lw=1)\r\nax.axhline(.455, lw=1)\r\nax.axhline(.355, lw=1)\r\nshow()\r\n```\r\n\r\n**Actual outcome**\r\n\r\n\r\n\r\n**Expected outcome**\r\n\r\nI think the most commonly noticeable problem is that digits appearing in the denominator tend to bump into the fraction bar. I used to believe that that was due to a discretization problem (i.e. we need to draw the fraction bar over an integer number of pixels to avoid blurring, so if we were supposed to have e.g. 1.5 pixels above and 1.5 pixels below this could get rounded to 2 and 1), which would still be annoying but arguably a reasonable tradeoff against blurring; but actually, rendering at large sizes shows that this is not the case (at size 42 the spaces are still clearly unequal).\r\n\r\nThe other cases are a bit more artificial, but show other aspects of the problem:\r\n- TeX puts a large-ish space above the `x` in the denominator, likely to make denominators line up across fractions; the denominators are very \"jagged\" in the mathtext case. TeX also only slightly bumps the height of the `y` numerator to keep numerators nearly aligned without bumping into the fraction bar, whereas mathtext just pulls `y` up by its full descender.\r\n- TeX arranges for the fraction bars to clearly align with the `+` sign and the center of the `=`, whereas mathtext's fraction bar is too low -- even though there's a comment in `mathtext.py` explicitly stating \"Shift so the fraction line sits in the middle of the equals sign\".\r\n\r\n**Matplotlib version**\r\n\u003c!--Please specify your platform and versions of the relevant libraries you are using:--\u003e\r\n * Operating system: linux\r\n * Matplotlib version: HEAD\r\n * Matplotlib backend (`print(matplotlib.get_backend())`): qt5agg\r\n * Python version: 38\r\n * Jupyter version (if applicable):\r\n * Other libraries: \r\n\r\n\u003c!--Please tell us how you installed matplotlib and python e.g., from source, pip, conda--\u003e\r\n\u003c!--If you installed from conda, please specify which channel you used if not the default--\u003e\r\n\r\n","author":{"url":"https://github.com/anntzer","@type":"Person","name":"anntzer"},"datePublished":"2020-09-01T16:16:27.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":6},"url":"https://github.com/18389/matplotlib/issues/18389"}
| 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:db2b9502-fd6f-35da-77f9-49c853af90e7 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 9D2A:19730C:708D70:989BD2:6A51D3EB |
| html-safe-nonce | 3c1d4ff0fe00199183c2c7daa700a8e0bc5c1676b6ffd12f441be0672f2ee75a |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RDJBOjE5NzMwQzo3MDhENzA6OTg5QkQyOjZBNTFEM0VCIiwidmlzaXRvcl9pZCI6IjY3MDYyNjQyMzUyODkyMDM2OTEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 63a00bbfa11d9061104703ce8ad27afb9b1781920f8f49754424d9e8d3186b7b |
| hovercard-subject-tag | issue:690276366 |
| 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/18389/issue_layout |
| twitter:image | https://opengraph.githubassets.com/729d1ebe843768a1536d71e82fbec48a8ea5c17df884c6f6c72a21ab72bf12ea/matplotlib/matplotlib/issues/18389 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/729d1ebe843768a1536d71e82fbec48a8ea5c17df884c6f6c72a21ab72bf12ea/matplotlib/matplotlib/issues/18389 |
| og:image:alt | Bug report Bug summary The positioning by mathtext of the numerator, denominator, and fraction bar are less than optimal. Code for reproduction from pylab import * for usetex, y in [(False, .4), (T... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | anntzer |
| 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