Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Add missing decode() in svg font embedding path.#10046

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
dstansby merged 2 commits intomatplotlib:masterfromanntzer:svg-font
Jan 5, 2018

Conversation

anntzer
Copy link
Contributor

@anntzeranntzer commentedDec 19, 2017
edited
Loading

Otherwise,

rcParams["svg.fonttype"] = "svgfont"; title("foo"); savefig("/tmp/test.svg")

fails (on Py3) with

  File ".../backend_svg.py", line 86, in escape_attrib    s = s.replace("&", "&")TypeError: a bytes-like object is required, not 'str'

The encoding of entry 1, 0, 0, 4 in the sfnt table is macroman
(https://www.freetype.org/freetype2/docs/reference/ft2-truetype_tables.html#TT_MAC_ID_XXX).

Note that after the fix is applied, the resulting svg file still appears
to be unopenable by inkscape, so the fix is not complete, but hopefully
a step in the correct direction.


Of course, this suggests that the svg.fonttype = svgfont codepath is untested, which is another problem :p

In practice it appears that the svg font standard isn't that popular or well supported, seehttps://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/SVG_fonts.

PR Summary

PR Checklist

  • Has Pytest style unit tests
  • Code is PEP 8 compliant
  • New features are documented, with examples if plot related
  • Documentation is sphinx and numpydoc compliant
  • Added an entry to doc/users/next_whats_new/ if major new feature (follow instructions in README.rst there)
  • Documented in doc/api/api_changes.rst if API changed in a backward-incompatible way

Otherwise,    rcParams["svg.fonttype"] = "svgfont"; title("foo"); savefig("/tmp/test.svg")fails (on Py3) with      File ".../backend_svg.py", line 86, in escape_attrib        s = s.replace("&", "&")    TypeError: a bytes-like object is required, not 'str'The encoding of entry 1, 0, 0, 4 in the sfnt table is macroman(https://www.freetype.org/freetype2/docs/reference/ft2-truetype_tables.html#TT_MAC_ID_XXX).Note that after the fix is applied, the resulting svg file still appearsto be unopenable by inkscape, so the fix is not complete, but hopefullya step in the correct direction.
@QuLogic
Copy link
Member

Can you usemac_roman instead? Partly because that's thecodec name, but mostly because I keep reading it as macro-man.

@anntzer
Copy link
ContributorAuthor

done

@tacaswell
Copy link
Member

I have also been reading it as 'macro-man' and puzzling at why they would come up with that name!

@dstansbydstansby merged commit58ddc36 intomatplotlib:masterJan 5, 2018
@anntzeranntzer deleted the svg-font branchJanuary 5, 2018 10:52
@QuLogicQuLogic modified the milestones:needs sorting,v2.2.0Feb 12, 2018
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@QuLogicQuLogicQuLogic approved these changes

@dstansbydstansbydstansby approved these changes

Assignees
No one assigned
Projects
None yet
Milestone
v2.2.0
Development

Successfully merging this pull request may close these issues.

4 participants
@anntzer@QuLogic@tacaswell@dstansby

[8]ページ先頭

©2009-2025 Movatter.jp