Re: Font matching questions in Fontconfig, Portable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



mathog wrote:
PowerPoint on Windows XP lists fonts:  Times, Times New Roman, Arial,
and Helvetica.  While Arial and Helvetica are identical

This might be like that on your machine, but there's no guarantee. Helvetica and Arial are different fonts after all. In your case Helvetica might be a printer font that is substituted with Arial for on-screen display because the Windows renderer has no better representation.

[...]
When fontconfig looks up fonts by name on Windows XP (under cygwin) it
comes back with, respectively (TrueType font unless otherwise indicated):

Arial            C:/WINDOWS/fonts/arial.ttf     (style Normal)
Helvetica        C:/WINDOWS/fonts/VeraSe.ttf    (style Roman)
Times            C:/WINDOWS/fonts/Vera.ttf      (style Roman)
Times New Roman  C:/WINDOWS/fonts/times.ttf     (style Normal)

I understand this is not what

  fc-list '' family file style

gives you, but what you get with fc-match/FcFontMatch(3) when providing such family names? (...see below)

What you get with 'fc-list' is what the fontconfig cache (updated with fc-cache) contains. It's all the supported files that fc-cache finds in the directories specified by <dir> tags in your fontconfig configuration. (It will not include fonts from printer drivers.)

The cache comes into play when

* Applications enumerate fonts for drop-down boxes and such (this is what you see in the Inkscape font selector). They often list the first available family for every cache entry.

* Applications request a certain font by pattern, i. e. family name. That pattern is substituted according to the target="pattern" rules in your fontconfig configuration and the result is then fed into a distance function to compare with all your cache entries. If 'Times' is no family name of any font in your cache, it's up to fontconfig rules to find a good alternative.

All of this is user-definable and will not yield the same result across different OSes, distributions, home directories etc. This is intended behavior and users are typically aware of that. If a user has a setup where 'Times' is always mapped to the same as 'Sans', that would be a very poor configuration of that system or user account, but I think it's not something that you as Inkscape developer need to take care of. (I think it's a bit strange though, since the default fontconfig configuration files should give better aliases, in particular 30-metric-aliases.conf, if it's included.)

Now the question is what kind of fontconfig configuration Inkscape for Windows uses, if any, as there's no system fontconfig on Windows. I doubt it's a Cygwin build though. Maybe it ships its own version of the GTK/Pango/fontconfig stack. In this case the application you develop should probably use the same configuration, i. e. if you're testing with Cygwin, you would need to make sure the configuration of your Cygwin tree is identical to the one the distributed application uses. You can e. g. include 30-metric-aliases.conf in etc/fonts/conf.d there, if it's fine with the upstream guys.

For UNIX/Linux builds however, I think second-guessing the user's fontconfig setup is not a good idea.

Raimund


--
Worringer Str 31 Duesseldorf 40211 DE  home: <rs@xxxxxxxx>
+49-179-2981632 icq 16845346           work: <rs@xxxxxxxxxxxxxxx>
_______________________________________________
Fontconfig mailing list
Fontconfig@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/fontconfig


[Index of Archives]     [Fedora Fonts]     [Fedora Users]     [Fedora Cloud]     [Kernel]     [Fedora Packaging]     [Fedora Desktop]     [PAM]     [Gimp Graphics Editor]     [Yosemite News]

  Powered by Linux