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