Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Include kerning when outputting pdf strings. #18517

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 19, 2020

Conversation

anntzer
Copy link
Contributor

@anntzer anntzer commented Sep 18, 2020

PR Summary

Closes #18282.

PR Checklist

  • Has pytest style unit tests (and pytest passes).
  • Is Flake 8 compliant (run flake8 on changed files to check).
  • New features are documented, with examples if plot related.
  • Documentation is sphinx and numpydoc compliant (the docs should build without error).
  • Conforms to Matplotlib style conventions (install flake8-docstrings and pydocstyle<4 and run flake8 --docstring-convention=all).
  • New features have an entry in doc/users/next_whats_new/ (follow instructions in README.rst there).
  • API changes documented in doc/api/next_api_changes/ (follow instructions in README.rst there).

@anntzer anntzer added this to the v3.4.0 milestone Sep 18, 2020
from .ft2font import KERNING_DEFAULT, LOAD_NO_HINTING


LayoutItem = dataclasses.make_dataclass(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are dataclasses getting us here that a named tuple would not?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The thing is not iterable, which avoids accidentally relying on an unpacking API (x, y = ...) which would be a pain to modify (i.e. you can't add another field while maintaining a sensible deprecation).
Of course this is private API so in a sense we could do whatever we want, but as a general rule I think dataclasses are nicer (but note that I went for the "functional" declaration API because I certainly wouldn't want to be the person introducing type hints in the codebase :))

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is a compelling agreement 👍 .

Copy link
Member

@tacaswell tacaswell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The AV sections do text selection fine in okular, but do odd things if you go across € (which from the discussion in #18282 seems to be expected and no worse than it is now).

@anntzer
Copy link
Contributor Author

anntzer commented Sep 18, 2020

I believe making selection across non-latin1 characters work would be a huge amount of work, indeed.

@QuLogic QuLogic merged commit 3b576e6 into matplotlib:master Sep 19, 2020
@anntzer anntzer deleted the pdfkern branch September 19, 2020 09:13
@anntzer anntzer mentioned this pull request May 1, 2021
4 tasks
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.

Bad interaction between kerning and non-latin1 characters in pdf output
3 participants