Hi, Tadziu wrote: > > .SH 1 > > Locations > > .IP " 1." 4 > > "GROWPS" causes the point size for "SH 1" to become larger. This > larger point size is still active when "IP" is called, and the indent > (in current ens) of the "IP" call is interpreted with the larger point > size.
I've also been looking into this as an exercise in learning more. For those that are also interested... `IP' is aliased to `@IP'. .de @IP .if \\n[.$]>1 .nr \\n[.ev]:ai (n;\\$2) .par*start \\n[\\n[.ev]:ai] 0 The `\\$2' is `4' from Kurt's `.IP'. As Tadziu says, that's `4n' as reflects the current font size. Having set `:ai' particular to this environment, `par*start' is also passed it. .de par*start .ds@auto-end .nr \\n[.ev]:pli \\$1 .nr \\n[.ev]:pri \\$2 .par@reset So now `:pli', paragraph left indent, holds the same value. The real work happens in `par@reset' that's called next. .de par@reset .br .\" Skip irrelevant lines. .in (u;\\n[\\n[.ev]:li]+\\n[\\n[.ev]:pli]) .ft 1 .fam \\*[FAM] There's the `.in' setting the indent and using `:pli'. The `.ft' and `.fam' immediately follow, but too late to affect the first evaluation of `4' as `4n' in `@IP'. Tadziu, you gave workarounds, but unless this is historical behaviour that must be preserved, isn't the order wrong and `@IP' should get the paragraph reset before interpreting its `$2'? -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy