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