# [NTG-context] typescripts

Wed Mar 17 13:16:26 CET 2010

Wolfgang Schuster:

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

I've seen examples like this:
\definefontfeature
[fea]
[mode=node,language=dflt,script=arab,
init=yes,medi=yes,fina=yes,isol=yes,
liga=yes,dlig=yes,rlig=yes,tlig=yes,
calt=yes,trep=yes,mark=yes,mkmk=yes,
kern=yes,curs=yes]
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:

> Yes, but there are not many (tf, it, sl, bf, bi, bs, sc) and I assume

> > 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]
>
>  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.

Mojca

------------------------------

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.)