josephwright / beamer

A LaTeX class for producing presentations and slides
Other
1.35k stars 139 forks source link

Displacement of `column` with action specification #881

Open louisstuart96 opened 5 months ago

louisstuart96 commented 5 months ago

As mentioned in #560, the following MWE will typeset the second frame (3 slides) with columns shifted to the right, as if the whole column is squished:

\documentclass{beamer}

\geometry{paperheight=2cm}

\begin{document}
\begin{frame}
    \begin{columns}
        \begin{column}{0.3\textwidth}
            Column A
        \end{column}
        \begin{column}{0.3\textwidth}
            Column B
        \end{column}
    \end{columns}
\end{frame}

\begin{frame}
    \begin{columns}
        \begin{column}<alert@2->{0.3\textwidth}
            Column A
        \end{column}
        \begin{column}<structure@2->{0.3\textwidth}
            Column B
        \end{column}
    \end{columns}
\end{frame}
\end{document}
samcarter commented 5 months ago

@louisstuart96 Thanks for reporting!

louisstuart96 commented 5 months ago

Here's some \showlists log about frame 1 and 2:

frame 1

### internal vertical mode entered at line 19
\glue 0.0
\vbox(0.0+0.0)x0.0
\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
\glue(\baselineskip) 7.06044
\hbox(6.53957+1.06459)x307.28987
.\glue -28.45274
.\penalty 10000
.\hbox(6.53957+1.06459)x364.19536, glue set 73.21846fill
..\hbox(0.0+0.0)x0.0
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\glue 0.0 plus 1.0fill
..\mathon
..\vbox(6.53957+1.06459)x72.26999
...[minipage of column A]
..\mathoff
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\glue 0.0 plus 1.0fill
..\mathon
..\vbox(6.53957+1.06459)x72.26999
...[minipage of column B]
..\mathoff
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\glue 0.0 plus 1.0fill
.\penalty 10000
.\glue -28.45274
\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
prevdepth 1.06459
### vertical mode entered at line 0
### current page:
\pdfcolorstack 0 push {0 g 0 G}
\write-{}
\pdfdest name{Doc-Start} xyz
\pdfcolorstack 0 push {0 g 0 G}
\pdfcolorstack 0 push {0 g 0 G}
\pdfcolorstack 0 push {0 g 0 G}
\pdfcolorstack 0 push {0 g 0 G}

prevdepth 0.0

frame 2

### internal vertical mode entered at line 31
\glue 0.0
\vbox(0.0+0.0)x0.0
\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
\glue(\baselineskip) 7.06044
\hbox(6.53957+1.06459)x307.28987
.\glue -28.45274
.\penalty 10000
.\hbox(6.53957+1.06459)x364.19536, glue set 219.65538fill
..\hbox(0.0+0.0)x0.0
..\glue 0.0 plus 1.0fill
..\pdfcolorstack 0 push {0 g 0 G}
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\mathon
..\vbox(6.53957+1.06459)x72.26999
...[minipage of column A]
..\mathoff
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfcolorstack 0 pop
..\pdfcolorstack 0 push {0 g 0 G}
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\mathon
..\vbox(6.53957+1.06459)x72.26999
...[minipage of column B]
..\mathoff
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
..\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
..\pdfcolorstack 0 pop
.\penalty 10000
.\glue -28.45274
\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
\pdfliteral{1 0 0 1 2000.02579 2000.02579 cm }
\pdfliteral{1 0 0 1 -2000.02579 -2000.02579 cm }
prevdepth 1.06459
### vertical mode entered at line 0
### current page:
\write-{}

prevdepth 0.0

As far as I can guess, the glue in \end{minipage}\hfill\end{actionenv} seems to be gobbled by \end{actionenv}.

louisstuart96 commented 5 months ago

A possible solution is to add a penalty (e.q. \nobreak) after each \hfill glue. I have not enough time to test this.