[powerdot] Re: onslide and minipage

  • From: Luis Sequeira <lfsequeira@xxxxxxxx>
  • To: powerdot@xxxxxxxxxxxxx
  • Date: Tue, 25 Oct 2005 12:20:48 +0100


On Oct 25, 2005, at 11:09 AM, Hendri Adriaens wrote:


%%%% smal example \begin{slide}{} A \pause B \pause C \pause D \onslide{2-}{Stuff} \pause E \end{slide} %%%% end of small example


What happens here is that \pause hides following material on overlay 1. Stuff does appear on overlay 2, but is overruled by an earlier \pause. In the itemize setting from previous examples, more things happen internally to be able to connect sequential and nested lists properly, having again other implications, as we saw. Here \end{itemize} jumps to overlay 0 (all visible) and hence the \onslide{2-} gets the chance of indeed displaying as from overlay 2. This is as expected and by design! In fact, we tell to become visible at overlay 2, so why shouldn't it do that?

What you probably meant was relative stepping, like \onslide{+1-}.
This is only possible after an \item in a list (as in the docs).

Did this clarify things a bit? BTW, we wrote an article about powerdot
which will appear shortly in MAPS (by NTG) and Tugboat. This also
explains the overlays in postscript etc. If you want some more
information already, you can have a look at the first subsection in
implementation in the source (.dtx).

Best,
-Hendri.



Hendri,

I do realize that there is some complex postscript code working behind the scenes to get the overlays and all and I am not qualified to discuss that
(I am very grateful for all the work you have done!).


But in the simple example above, "Stuff" does NOT appear in overlay 2, only on overlay 4 (i.e. the same one that "D" appears).
And modifying the example to put A, B, C, D within an itemize environment still has "Stuff" appearing only from overlay 4 onward.
(That essentially reproduces the problem that Ted complained about in the first place).


All this may be the intended behavior, but what these examples show is that mixing \pause with (any variant of) \onslide can and will produce results that may not be what an unsuspecting user might expect. Perhaps a more telling example would be the following:

%%%%%
\begin{slide}{Mix and match}
This is overlay number \onslide*{1}{1}\onslide*{2}{2}\onslide*{3}{3}.\\
A \\ \pause B \\ \pause C \\
This is overlay number \onslide*{1}{1}\onslide*{2}{2}\onslide*{3}{3}.\\
\end{slide}
%%%%%

The last line is only displayed at all in overlay 3 (by the efect of the two \pause commands), and so the \onslide*{1}{1} and \onslide*{2} {2} commands never produce any output. Compare this with

%%%%%
\begin{slide}{Not Mix and match}
This is overlay number \onslide*{1}{1}\onslide*{2}{2}\onslide*{3}{3}.\\
A \\ \onslide{2-}{B}\\ \onslide{3-}{C} \\
This is overlay number \onslide*{1}{1}\onslide*{2}{2}\onslide*{3}{3}.\\
\end{slide}
%%%%%

which is the analog (in a simpler context) of what Ted wanted to do in the example that brought up this thread. Granted, the second version requires mode code, but does produce the expected output (expected from a naive point of view, anyway). I am not criticizing the design, but the fact remains that the actual output of a \onslide command (in fact, whether there is any output) depends not only on its first argument but on the number of \pause commands that appear before it in that slide.

More precisely, and to the point, \onslide{2-}{Stuff} actually behaves as \onslide{max(2,number of previous \pause's - 1)-}{Stuff}

My take from this and from other personal experiences is not to mix \pause with \onslide unless one is sure what one is doing...



Luis Sequeira





Other related posts: