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

Appearance settings

issues parsing AFM fonts #12987

Copy link
Copy link
Closed
Closed
Copy link
@tacaswell

Description

@tacaswell
Issue body actions

Investigating the linux failures in #12982 discovered that we are not parsing AFM files correctly.

https://www.adobe.com/content/dam/acom/en/devnet/font/pdfs/5004.AFM_Spec.pdf for reference...

  1. weird values for underline information. There are some files which have lines like
    UnderlinePosition -41,5039
    UnderlineThickness 43,9453
    
    where we expect this to be a "number" which can a decimal, we are expecting to cast to float (see page 10 in the pdf). An example of this (on arch) is /usr/share/texmf-dist/fonts/afm/public/dejavu/DejaVuSansCondensed-BoldOblique.afm
  2. It seems that there are strings encoded as latin-1 (b'Notice' b'Copyright (c) Typographer Mediengestaltung, 2000. All rights reserved. Zallman-Caps \xa9 1991 by D. Rakowski.' to get in ©. According to the first section of the linked pdf AFM files are ASCII encoded.
  3. Some fonts are parsing with weights that are not in the weight dictionary (which is what caused the
    failure on azure
In [7]: [(f.fname, f.weight) for f in fm.afmlist if f.weight not in matplotlib.font_manager.weight_dict]
Out[7]: 
[('/usr/share/texmf-dist/fonts/afm/public/aurical/AuriocusKalligraphicusRslant.afm',
  'reverseoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/AuriocusKalligraphicusSlant.afm',
  'oblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/AmiciLogoRslant.afm',
  'reverseoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/prodint/prodint.afm', 'plain'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/LukasSvatbaSlant.afm',
  'oblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/JanaSkrivanaRslant.afm',
  'reverseoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/txfontsb/FreeSerifb-SmallCapsAlt.afm',
  'smallcaps'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/LukasSvatbaRslant.afm',
  'reverseoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/cochineal/Cochineal-Italic.afm',
  'italic'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/LukasSvatbaBoldRslant.afm',
  'boldreverseoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/tex-gyre/qcsbi.afm', 'bolditalic'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/JanaSkrivanaBoldRslant.afm',
  'boldreverseoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/mathpazo/fplmbb.afm',
  'blackboardbold'),
 ('/usr/share/texmf-dist/fonts/afm/public/dejavu/DejaVuSans-ExtraLight.afm',
  'extra-light'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/JanaSkrivanaBoldSlant.afm',
  'boldoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/AuriocusKalligraphicusBoldRslant.afm',
  'boldreverseoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/AuriocusKalligraphicusBoldSlant.afm',
  'boldoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/AmiciLogoSlant.afm',
  'oblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/txfontsb/FreeSerifb-SmallCaps.afm',
  'smallcaps'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/AmiciLogoBoldRslant.afm',
  'boldreverseoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/AmiciLogoBoldSlant.afm',
  'boldoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/LukasSvatbaBoldSlant.afm',
  'boldoblique'),
 ('/usr/share/texmf-dist/fonts/afm/public/aurical/JanaSkrivanaSlant.afm',
  'oblique')]

there are mostly weight that should have been split into a weight + a slant or weight + style.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.