Sender: |
|
Date: |
Fri, 7 Mar 2003 00:09:52 +0100 |
Reply-To: |
|
Subject: |
|
MIME-Version: |
1.0 |
Content-Transfer-Encoding: |
8bit |
In-Reply-To: |
<l03102800ba891a184d86@[130.235.3.161]> |
Content-Type: |
text/plain; charset=iso-8859-1 |
From: |
|
Parts/Attachments: |
|
|
Lars Hellström writes:
> This needs not be related, but it sometimes leads to similar problems, and
> I haven't seen an explanation anywhere: why is \addvspace discontinuous? If
> SKIP < \lastskip < 0
> then the net effect of \addvspace{SKIP} is to do nothing, but if
> SKIP < 0 <= \lastskip
> then the net effect of \addvspace{SKIP} is that SKIP is added to the
> current vertical list (thus moving everything up).
i starred at that definition once more (probably done so several times in the
past :-) but i think it has some understandable logic (i'm not saying that it
has the world's best implementation for it) after all.
basically it goes like this:
the main intention why the command was introduced in the first place to is the
following:
if there are two objects A and B that both want to
produce some space after/before them then if both objects are directly
after each other one usually does not want to put too much space between
them, so a good approach is to use the maximum
now an assumption that i think was made is that the skips that actually end up
being on the galley are positive and in fact i think this is virtually always the
the case. Note that i talk about the skips on the galley not the skip used the
last time in an \addvspace command, e.g. the cited example
\addvspace{-\parskip} %% added 4 Sep 85
i actually one in a sequence
\addpenalty\@beginparpenalty
\addvspace\@topsep
\addvspace{-\parskip}%
and the net effect of \topsep-\parskip is normally positive.
so back to the theme if producing the maximum is sensible then what to do
about
SKIP < 0pt ?
i think that Leslie thought this to be a good way to extend the command to
allow for corrective actions if necessary
why he additionally required \lastskip > 0pt is beyond me though.
it means that SKIP < \lastskip < 0pt again uses the maximum principle but
that doesn't make much sense to me.
so much for how i read history two minutes before midnight (perhaps all
rubbish)
well, how could a simpler command look like?
>Also, it seems to me as if there could be a need for two commands here: one
>which does what (the simplified) \addvspace does (guarantees that there is
>at least a certain amount of vertical space in the last mix of penalties
>and glue), and one which actually makes the vertical space a certain amount
>larger (without messing it up for any subsequent \addvspace or
>\addvpenalty).
what precisely is the algorithm for that simplified thingie? i'm not at all
sure what should happen there
i can see how to define a user command for corrective actions always adjusts
the space in either direction, the only problem is that its natural name
(addvspace) is already taken
good night
frank
|
|
|