[NTG-context] typescripts

Michael Saunders odradek5 at gmail.com
Wed Mar 17 13:16:26 CET 2010

Wolfgang Schuster:

> You can apply only *one* feature to \definefontfeatures.

I've seen examples like this:
so I think you mean to say that I can apply only one feature to
\definefontsynonym or to \definetypeface.  I tried this and it
checks out.  Thanks---it's nice to see hz working.  Protrusion is
only on the right margin?

> > 2. As far as I can tell from trying to decode examples, there is some
> > hidden connection between the first arguments of the second typescript
> > block and the font switches.  So, for example, a secret connection
> > between SerifBoldItalic and \bi seems to connect Junicode-BoldItalic
> > to \bi.  Fine, but, in all the examples I've seen, there are no more
> > than two weights and no widths.  In some cases, I have five weights
> > (light, book, medium, semi-bold, bold).  How do I set up the
> > typescript for this and the switches in the text?  Must I learn more
> > pairs like (SerifBoldItalic, \bi)?

You need more typefaces. One for light, another one for condensed etc.


Mojca Miklavec:

>> Must I learn more pairs like (SerifBoldItalic, \bi)?

> Yes, but there are not many (tf, it, sl, bf, bi, bs, sc) and I assume
> that they are extensible. See also below.

> > You need more typefaces. One for light, another one for condensed etc.

> Maybe I'm wrong, but shouldn't it be possible (I didn't test) to
> modify font-unk.mkiv and add a few extra definitions to the following?
> (Maybe not modify font-unk itself, but just adding a couple of more
> definitons to the typescript.)
> \definebodyfont [default] [rm]
>  [tf=Serif sa 1,
>   bf=SerifBold sa 1,
>   it=SerifItalic sa 1,
>   sl=SerifSlanted sa 1,
>   bi=SerifBoldItalic sa 1,
>   bs=SerifBoldSlanted sa 1,
>   sc=SerifCaps sa 1]
> You could add your
>  in=SerifYourFontVariantName sa 1,
>  bd=SerifYourOtherFontVariantName sa 1,
> And then
>   \definefontsynonym[SerifYourFontVariantName][YourFontName]

> It's true that most people don't do that, but I see no reason for not
> extending the model for your particular needs.



Wolfgang Schuster:

> The last time i did this you needed for MkIV also
> \definefontalternative[in]
> \definefontalternative[bd]
> but be carefull with the shortcuts, \in is already used (references).

Thank you both.  I want to begin experimenting with this, but there's
one thing that still confuses me.  If I have a font with say, forty different
combinations of weight/width/shape (5x4x2), I will need to come up with
forty different pairs like:
myNewFontSwitch=SerifMyFontVariantName sa 1,
a strain on the poetic imagination, but possible.
It would be nicer though, if I could change weight/width/shape independently
of each other (then I need have only 5+4+2 switches).  For example, when
I see something like:
\rm\tf roman \it italic \bf bold
resulting in:
<book roman> <book italic> <bold roman>,
it's surprising to see that \bf has turned off the italic---you don't
expect a switch
of the weight to have a hidden switch of the shape in it.  Could the typescript
be set up with fewer switches, so that:
\rm\tf roman \it italic \bf bold
would result in:
<book roman> <book italic> <bold italic>,
or, e.g.,
\rm\tf (regular book roman) \cd (condensed) \it (italic) \bf (bold)
would result in:
<regular book roman> <condensed book roman> <condensed book italic>
<condensed bold italic>?

(Also, I'm hoping that having a dozen different sets of font features won't
require twelve times as many switches and feature names as this.  I think
there is some easier method for switching---Hans mentioned \addff{}, but
I can't find anything in the docs.  If that works, that would make two kinds
of switches, one for some kinds of features and another for other kinds.)

More information about the ntg-context mailing list