On 6/25/2013 6:16 AM, Andres Conrado Montoya wrote:
Thank you so much, Hans. :) It works great!.

I must agree, however, with Georg's considerations. I am very grateful
for the current solution, but an automatic selection of optical sizes
could be insanely good, from a book designer point of view (I'm a book
designer). Just for the curious, these are some links that go deeper
in the theme of Optical Sizes for Typography:

Optical sizes have always been part of tex (macro packages) and are also one of the reasons why tex font subsystems are complex:

- fonts often provide only some styles / variants in sizes, so fallbacks need to be supported - names are highly inconsistent, so there is no systematic robust solution that automates it - only a few fonts provide optical sizes and the whole font machinery must not suffer (in performance) from this - fonts can be combined in any way with other designs (and we also need to take math into account)

Now, the only case where optical sizes are really robustly implemented is in open type math as there the shapes are in one file and by opening this one file one gets all the information: no need to analyze names and whatever and deduce if/where the other sizes sit. The alternative set can have a smaller repertoire too.

This is more complex when sizes are spread over fonts. One cannot rely on the names of files (name8whatever vs name05whatever vs namewhatever4 etc) so one has to analyze the font son the system but often internal names in the font also suffer from this. Then there are combinations of 'bare name' (should have no number in it), weight, width, style, whatever and again this is not guaranteed consistent.

You really don't want to know how much time went into figuring out a decent way to analyze fonts on the system and make sure that users at least with a certain degree of certainty can use a 'name:' or even 'spec:' locator. Personally I *never* use font names but only trust filenames because i don't want to be surprised by an updated where internal names changed and (in automated flows) fonts sort of dissappear due to this. And, the designsize feature combined with lfg files guarantee me that I can still use designsizes then (after all, texies expect lm designsizes to be supported).

So, back to optical sizes. As said, they are supported. If one has the goodie file (will be in next upload) and asks for the eb bodyfont in the way demonstrated in the typescript size matching logic will be applied. But in a controlled way, so you know what you get. But nevertheless it's automatic then. (In your sample code you used some size key, in context we specify that we want to use designsizes so it all boils down to specifying anyway.)

Any further automation will only make things worse: nothing is as frustrating as fighting built in cleverness. Now, I'll not go into details to much about eb (which is a nice font btw) but the fact that in a font file there is mention of a design size range is nothing special: many fonts in my texmf-fonts tree have such ranges and most of them have only one optical size, so one thing a selector then has to figure out is: are there more. And of course there are, if you look at some properties, because of inconsistent naming and tagging as mentioned, following some logic, all kind of antykwa fonts suddenly could end op in a pool of optical sizes but they are in fact all different in specific properties. The same is true for more fonts. So what should one look at? The filename: no universal system behind it. The font name? Idem, some have a number (size) in it some haven't. Qualifiers like Italic Ital Ita are all used mixed. Some fonts have extra flags? But often these have weird values so one cannot rely too much on it.

We see things like

 ["design_range_bottom"]=0,
 ["design_range_top"]=94,
 ["design_size"]=80,
 ["encodingchanged"]=0,
 ["extrema_bound"]=0,
 ["familyname"]="EB Garamond 08",
 ["fontname"]="EBGaramond08-Italic",
 ["fontstyle_id"]=2,
 ["fontstyle_name"]={
  {
   ["lang"]=1033,
   ["name"]="Italic",
  },
 },

and

    ["compatfull"]="EB Garamond 08 Italic",
    ["family"]="EB Garamond 08",
    ["fullname"]="EB Garamond 08 Italic",
    ["postscriptname"]="EBGaramond08-Italic",
    ["preffamilyname"]="EB Garamond",
    ["prefmodifiers"]="08 Italic",
    ["subfamily"]="Italic",
    ["uniqueid"]="FontForge 2.0 : EB Garamond 08 Italic : 2-1-2013",


So how is a system supposed to know to look for EBGaramond12-Italic or EBGaramond4Italic or whatever. Some heuristics have to be applied and as I mentioned in an earlier mail, I played a bit with it and although I can make you happy by supporting EB sizing automatic (of course with toms way to disable it) another user will be bitten by false matches and missing ones for other fonts (hard to trace).

To be honest: I'd already given up on fonts and names and whatever being systematic and logic etc ... Just as I've also given up on open type guaranteeing consistency or open type math taking care of all messy aspects of math fonts. (And of course the same is true for automated typesetting: it will never be possible to fully automate if only because each user has different expectations and conditions are unpredictable).

So, as you mention several links to typographic sites ... it's craft and configuring what you want is not too hard. I wouldn't be surprised if those who claim that this or that size should be honored on the other hand have no problem with messing up the inter character spacing, do some optical scaling on the font and worse.

Hans

ps. The same discussion can be held about what features to enable. It assumes fonts to be set up properly. I have fonts here that have oldstyles shapes as (hard coded) default and regular alternatives so in fact they assume onum is explicltly off i guess. While one can argue that the font should not have oldstyles as default shapes but in alternates. So, opentype can make live easier (no encodings) but also demands that users know what and look at what they're doing.

Pointing to what other systems do is pointless as I've heard talks about professional typesetting systems that with each version started supporting or enabling or showing in menus more 'font features' while in fact most otf font features are so generic that you can support them all right from the start. So again, in context, you can turn on and off features, choose the ones you like, and even add your own. If some category is supported, all are. (No additional secret unlock keys needed.)

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
    tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                             | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to