[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#63797: dvips produces bad postcript



>>>>> "C" == C M Connelly <c@eskimo.com> writes:

    C> As Atsuhito has pointed out, the \overlay command is similar to
    C> commands such as \bfseries (what George Gratzer calls ``command
    C> declarations'') -- these commands affect everything following
    C> their appearance until their scope is closed.  That means that
    C> you *must* create a scope for the command using either braces
    C> or environment declarations (``special braces'').

I would have though that the \begin{slide}...\end{slide} should be
sufficient for this scope?

I would have thought that as soon as the compiler hit the \end{slide}
item, everything including the overlay should be reset. 

(please note: the fatal error I initially complained about came
*after* the \end{slide}, while displaying the notes page, not
*before*. I hope there is no confusion here...).
 
    C>    \begin{slide} \overlay{0} What is Crashing?  \begin{itemize}
    C> \overlay{1}\item Crashing is a bad thing.  \overlay{2}\item Why
    C> is crashing important?  \overlay{3}\item Working around
    C> crashes.  \end{itemize} \end{slide}

So, your saying that \end{itemize} closes the current scope, but
\end{slide} doesn't? (sorry about messing up with the formatting).

    C> If you insert an additional \item command after the last
    C> \overlay command, the last slide will have two items.  (If you
    C> insert text between the \end{itemize} and \end{slide} commands,
    C> it will be discarded because that text is outside the scope of
    C> the last \overlay command (which was closed by \end{itemize}).)

Wouldn't this text still be covered by \overlay{0}, which is still in
scope?

I am seriously concerned there are some major misunderstandings in
this bug report. You say, by your above example, that having
"\overlay{0}" in the \begin{slide} ... \end{slide} scope is OK.
However, the point of this bug report was to say "it doesn't work!".

Your example causes *exactly* the same problems as I was initially
complaining about. In case I haven't already spelled it out: the error
is *not* *caused* in the display of the *slides*! Rather it is caused
when trying to display the notes *after* the *slide*.

For example, change your example to have some text underneath:

--- cut ---
\begin{slide}
\overlay{0} What is Crashing?
\begin{itemize}
\overlay{1}\item Crashing is a bad thing.
\overlay{2}\item Why is crashing important?
\overlay{3}\item Working around crashes.
\end{itemize}
\end{slide}

hello is anyone there?
--- cut ---

viewing page 1,1a,1b,1c all work fine. Viewing the last page (the
notes) is what causes it to crash.

This fixes the problem:

--- cut ---
\begin{slide}
{\overlay{0} What is Crashing?
\begin{itemize}
\overlay{1}\item Crashing is a bad thing.
\overlay{2}\item Why is crashing important?
\overlay{3}\item Working around crashes.
\end{itemize}}
\end{slide}

hello is anyone there?
--- cut ---

so perhaps you made a mistake in your example? Did you mean to scope
the first \overlay command?

even worse, if you remove some of the overlay commands in your above
example:

\begin{slide}
\overlay{0} What is Crashing?
\begin{itemize}
\item Crashing is a bad thing.
\item Why is crashing important?
\item Working around crashes.
\end{itemize}
\end{slide}

Now, nothing in the slide renders properly (it seems worse then
before). Or, is it illegal to use \overlay{0} without an \overlay{1}?

    C> I hope this message helps clarify the discussion.

Thanks for trying, but obviously, I am still confused :-(.

I am concerned that in saying this problem "is a problem with the
tex input", you may be covering up a serious problem with tetex.

Besides, it is the PS file which has the error, so that would
mean the error must propagate:

tex ---> dvi ---> ps

with no conversion step picking up on the error. Is this normal?

Remember that the postscript error was that \BOL is undefined. Looking
at the postscript code, \BOL is defined (I think) by pstricks. I
suspect if you found the actual problem, it has nothing to do with
scoping inside the LaTeX document, but incorrect scoping (or
something) by the dvips driver (or maybe LaTeX specials) in the PS
file.

In fact, the definition of \BOL looks rather simple:
/BOL { BeginOL } def

Will investigate in more detail when I next get a chance.
-- 
Brian May <bam@snoopy.apana.org.au>



Reply to: