Hi Keith, Here an example that Mikael made for such a book: \showframe % let's very strict \startsetups [*default] \directsetup{*reset} \frozen\widowpenalty 10000 \frozen\clubpenalty 10000 \frozen\displaywidowpenalty 10000 \frozen\brokenpenalty 0 % \defaultbrokenpenalty \stopsetups % we enable the use of expansion (this feature might become preset % because we now delay setting the vectors anyway so less overhead) \definefontfeature [default] [default] [expansion=quality, protrusion=quality, itlc=yes] % vertical expansion \setuplayout [vz=2] % for which we need: % \setupalign[hanging,depth,stretch,granular] \setupalign[depth,stretch,granular] % here are the passes: \startsetups align:pass:test4 \pretolerance 100 \tolerance 200 \parpasses 4 classes \indecentparpassclasses threshold 0.025pt adjustspacing 3 adjustspacingstep 1 adjustspacingshrink 5 adjustspacingstretch 10 next classes \indecentparpassclasses threshold 0.025pt adjustspacing 3 adjustspacingstep 1 adjustspacingshrink 10 adjustspacingstretch 20 next classes \indecentparpassclasses threshold 0.025pt adjustspacing 3 adjustspacingstep 1 adjustspacingshrink 25 adjustspacingstretch 50 next classes \indecentparpassclasses threshold 0.025pt adjustspacing 3 adjustspacingstep 1 adjustspacingshrink 50 adjustspacingstretch 100 \relax \stopsetups \setupalignpass[test4] \starttext ... \stoptext (work in progress so keep an eye on updates) 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 -----------------------------------------------------------------