Hi, The latest lmtx has a new feature: expansion control independent of font specific settings. When used the font specific step stretch and shrink will be overloaded. This permits mixed setups that are normally nor possible because these three properties need to be consistent within a paragraph. It also permits local deviations from the defaults, for instance in more extreme cases. \startluacode local classes = fonts.expansions.classes classes.qualityb = { vector = "default", factor = 1, stretch = 8, shrink = 4, step = .5, } classes.qualitya = { vector = "default", factor = 1, stretch = 4, shrink = 2, step = .5, } \stopluacode \showframe % \enabletrackers[*expansion] \setupbodyfont[dejavu,8pt] \defineexpansion [myexpansion] [step=1, stretch=50, shrink=20] \definefontfeature [basea] [default] [expansion=qualitya] \definefontfeature [baseb] [default] [expansion=qualityb] \definefont[FontA][Serif*basea] \definefont[FontB][Serif*baseb] \setupalign[verytolerant,stretch,hz] \starttext \startbuffer \dorecurse {30} {% {\FontB \red test me #1,} \FontA \dorecurse{#1}{test ##1, }% }\par \stopbuffer {\getbuffer \page} \setexpansion[myexpansion] {\getbuffer \page} \stoptext Maybe it's useful (I hardly use expansion myself). Hopefully there are no side effects. 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 -----------------------------------------------------------------