Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Description
Bug report
Bug summary
Kerning is not applied in the PDF output of pure single-byte strings which leads to inconsistencies between PDF and other output formats.
Code for reproduction
importmatplotlib.pyplotaspltfig,ax=plt.subplots()ax.text(0.1,0.5,"ATL",size=120)fig.savefig("atl.pdf")fig.savefig("atl.png",dpi=300)
Expected outcome
I expected that the spacing betweenA
andT
is consistent between both formats. Besides this minor visual issues, I useget_window_extent()
to place a second text item in bold next to the first one. The space between the two texts varies significantly between output formats.get_window_extent()
considers the kerning information, so the space looks correct in PNG but is usually too small in PDF files.
The issue is related to#18282. Here the same issue was fixed for strings with multi-byte chars. I don't see the changes from#18282 in version 3.3.4, but they will not effect the single-byte string case.
Unaware of#18282, I've implemented a fix for the single-byte case. I will open a PR, but you might have other ideas on how to implementation a fix.
Matplotlib version
- Operating system: Ubuntu 16.04
- Matplotlib version: 3.3.4
- Matplotlib backend: TkAgg (but actually PDF?)
- Python version: 3.7.5
- Font: DejaVuSans Type 3
I've installed matplotlib in a virtualenv with pip.