Hi,

The beta has some new font trickery: support for variable fonts. This is still experimental but around the context meeting i expect the user interface etc to be stable. There is a bit of magic involved in the transformations along design axis because not only shapes change but also positional features get influenced (e.g kerning).

Variable fonts are defined in the opentype 1.8 standard but there isnot much more known about them. There are a few example fonts already out there. The only reasonable ones i could find were Avenir Next Variable and Adobe Variable Font Prototype (which is a rip off of some other font). I have no clue how well these fonts are because I guess that getting all the features right is not that trivial (so it's hard to decide if something weird is due to the font or to context but we'll get there eventually).

Using these fonts should be transparent in the sense that it should just work. As the shapes are transformed along axis the pdf has to get the right stuff and currently there are two methods: inline shapes (it's how i explored things) and native. For native one needs a version of luatex with a trivial extension (most works happens in the font loader) and that version (1.05) will be released on the garden after the tl code freeze (tl will have 1.04). One can force inline shapes but it will be done automatically when one runs a luatex that lacks the small extension needed.

Anyway, it provides users a way to play a bit with this new technology so that we can come up with a (maybe more extensive) user interface in context. It also permits WS to adapt his selectfont mechanism.

\definefontfeature
  [default:shaped]
  [default]
  [axis={width:900,weight:100}]

\definefont
  [SomeFont]
  [name:avenirnextvariable*default]
\SomeFont \input ward\par

\definefont
  [SomeFont]
  [name:avenirnextvariable*default:shaped]
\SomeFont \input ward\par

\definefont
  [SomeFont]
  [name:avenirnextvariableregular*default]
\SomeFont \input ward\par

\definefont
  [SomeFont]
  [name:avenirnextvariablemedium*default]
\SomeFont \input ward\par

\definefont
  [SomeFont]
[name:adobevariablefontprototypeextralight*default] \SomeFont \input ward\par

\definefont
  [SomeFont]
  [name:adobevariablefontprototypelight*default]
\SomeFont \input ward\par

etc etc

So, one can either use a predefined instance or ask for a user defined instance. The s-fonts-variable.mkiv style can be used to identify proprties, as can

  mtxrun --script font --list  --pattern=aven* --info

which returns, among other things

mtx-fonts       |
mtx-fonts | instances : regular medium bold heavy condensed mediumcondensed boldcondensed heavycondensed
mtx-fonts       |

So, keep in mind that it's experimental and will evolve in sync with my understanding of what the standard expects.

Hans


-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | 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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to