I have been earnestly trying to understand how they work by attempting a slightly more complex one. So far, I have: ------------------------------------------------------- \definefontfeature[default][mode=node,language=dflt,script=latn,kern=yes,liga=yes,tlig=yes,trep=yes] \definefontfeature[body][onum=yes,pnum=yes,protrusion=quality,expansion=quality]%turn hz on %plus some I hope to use later \definefontfeature[tabular][sans=yes,tnum=yes,onum=yes]%turn hz off \definefontfeature[allcaps][cpsp=yes,case=yes,lnum=yes] \definefontfeature[smallcaps][smcp, onum=yes] \definefontfeature[swashes][swsh=yes] \definefontfeature[inferior][sinf=yes] \definefontfeature[superior][sups, ordn=yes] \definefontfeature[numerator][numr=yes] \definefontfeature[denominator][dnom=yes] \definefontfeature[prop-os][pnum=yes,onum=yes] \definefontfeature[prop-lin][pnum=yes,lnum=yes] \definefontfeature[tab-os][tnum=yes,onum=yes] \definefontfeature[tab-lin][tnum=yes,lnum=yes] \definefontfeature[ornaments][ornm=yes] \definefontfeature[lgc][script=latn,script=grek,script=cyrl] \starttypescript [serif] [junicode] \definefontsynonym[Junicode][name:junicode][features=default,features=body,features=lgc] \definefontsynonym[Junicode-Bold][name:junicodebold][features=default,features=body,features=lgc] \definefontsynonym[Junicode-Italic][name:junicodeitalic][features=default,features=body,features=lgc] \definefontsynonym[Junicode-BoldItalic][name:junicodebolditalic][features=default,features=body,features=lgc] \stoptypescript \starttypescript [serif] [junicode] \definefontsynonym[Serif][Junicode][features=default,features=body,features=lgc] \definefontsynonym[SerifBold][Junicode-Bold][features=default,features=body,features=lgc] \definefontsynonym[SerifItalic][Junicode-Italic][features=default,features=body,features=lgc] \definefontsynonym[SerifBoldItalic][Junicode-BoldItalic][features=default,features=body,features=lgc] \stoptypescript \starttypescript [junicode] \definetypeface [junicode] [rm] [serif] [junicode] [default] [features=default,features=body,features=lgc,features=hanging,features=hz] \stoptypescript \setupalign[hanging,hz] \setupbodyfont[junicode,12pt] ------------------------------------------------------------------------- but, 1. tlig and trep aren't working, so evidently, features=default isn't getting through. No hanging or hz is happening either---probably the same problem. 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)?