Tue, 29 Mar 2005 15:47:25 -0800
|
Uwe Lück <[log in to unmask]> writes:
> At 13:30 26.03.05, you [David Kastrup] wrote:
> >Donald Arseneau <[log in to unmask]> writes:
> >
> > > The problem with \penalty\outputpenalty is that \outputpenalty=10000
> > > and prevents the same page break instead of forcing the same break.
> >
> >Well, when rebreaking, I find that using \pagediscards seems like the
> >best thing to do. Then you get the same vertical list again, unless
> >\outputpenalty is less than 10000, in which case you need to reinsert
> >it in front of the discards (it will be replaced with \nobreak in the
> >\pagediscards in this case).
>
> And where is \pagediscards available? (Not by a Google search on CTAN.)
\pagediscards is an etex primitive (built-in) command. David is
probably right (since he has been looking at that stuff) but I
don't see the benefit, since we want to get the same page break
again.
> And what about
> \ifnum\outputpenalty=\@M \else
> \penalty\outputpenalty
> \fi
I think that would work.
The point is that if TeX breaks the page *not* at a penalty (effective
penalty=0) it flags that by setting \outputpenalty=10000 (which could
never happen naturally).
I see no reason to reproduce the exact output penalty, since you
are looking to get the same page break, so I would probably put a
negative penalty there.
You do not want to hold inserts when performing "supereject"
(-20000), so you do need to release the inserts then.
There are references to \footins in \@specialoutput that have
to be rewritten for the case when \holdinginserts is holding
the inserts. (The whole point of holding them is that they
do *not* come out when cycling through \@specialoutput.)
I'm not sure that it is even possible to maintain the
\@pageht methods when using \holdinginserts.
--
Donald Arseneau [log in to unmask]
|
|
|