John Hunter wrote:
> On 11/5/07, Darren Dale <[EMAIL PROTECTED]> wrote:
>>>> If we go the route of
>>>> wrapping the API (which would be better anyway, since then we could look
>>>> for fonts in our own custom font directory), it would just be like the
>>>> existing dependencies on freetype and libpng.  Not a big deal, really,
>>>> but it adds an additional maintenance burden on those Windows
>>>> dependencies.
> 
> My inclination is to try and fix font_manager.  Paul's goal was to
> implement the W3C specification for cross-platform font finding, which
> seems like a good starting point.

IMHO, it's just a not a very good algorithm.  The key section (when an 
exact font-family match can not be found) is this:

"UAs that implement intelligent matching may proceed to examine other 
descriptors such as x-height, glyph widths, and panose-1 to identify a 
different tentative font family. If there are matches for *all* the 
remaining descriptors, then that is the matching font face for the given 
element." (Emphasis mine).

Certainly one can do better than all-or-nothing like this.  Something 
like a weighted nearest neighbor match would result in much better near 
matches.

> So far, I've heard two complaints
> about the current setup: font_manager will throw up its hands and
> return a default if an exact match fails rather than returning the
> closest (this doesn't seem too hard to improve upon in the existing
> framework)

Not a lot of work, but the main data structure for lookups will need to 
be completely different.  Right now it is a tree with font-family name 
at the top, so if that fails it's difficult to find something close.

> and we do not have support for OpenType (not sure how hard
> this would be to add).

That's easy -- freetype handles them correctly and the interface to the 
metadata ends up looking the same as a ttf file.  It's only because of 
the different file extension that they are not being seen now.  I'll 
have a patch shortly.

> Are there other problems?

.dfont support on the Mac -- it only looks at the first font in the 
file.  (Though, when I checked fontconfig a few months ago, it also 
exhibited this problem.)

Maintaining a separate font cache means that the user must know to 
delete the matplotlib font cache file in order to use newly installed fonts.

Cheers,
Mike

-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to