Beamer: finding slides that overflow
What happens
A frame has a fixed height. When its content is taller, Beamer does not start a new slide: the extra lines are set below the bottom edge and never appear. The build succeeds. The only trace is a log line such as
Overfull \vbox (42.48938pt too high) detected at line 22where the line is that of \end{frame}.
How the tool maps it to a frame
- The log is read in order, counting the pages shipped out; an overfull vbox reported after page n belongs to page n + 1.
- Beamer's
.navfile records the first and last page of each frame (a frame with overlays spans several pages). - Frames are listed from the source in order —
\begin{frame}{Title}or\frametitle{Title}— with file and line.
When the number of frames in the .nav equals the number found in the source, the mapping is
exact and the report says exact (.nav). Otherwise (frames produced by a macro or a loop,
\againframe, frames inside conditionals) it falls back to the line number of the warning and
says the mapping is approximate.
Reading the report
beamer deck.tex returns:
overflowing_frames— number, title, file, line, how many points too high, pages;frames_with_overfull_hbox— content too wide (a long formula, a wide table or image);frames_without_title— title pages and outline frames are not counted;frames— every frame with its page range and number of overlay slides.
As a rule of thumb at 10–11 pt, a line of text is 12–14 pt high: an overflow of 42 pt is about three lines lost.
Fixing
- Cut. A slide that overflows usually says too much.
- Split into two frames.
- Reduce a figure:
height=0.6\textheightinstead of a width. \begin{frame}[allowframebreaks]for bibliographies and long lists (not with overlays).\begin{frame}[shrink=5]or a smaller font for one frame, as a last resort: the audience sees the difference.[t]alignment does not gain space; it only moves the content up.
What is not detected
- Material placed with
textpos,tikzoverlay/remember picture, or\vspace*{-…}tricks: it is not part of the box Beamer measures. - Content hidden behind the footline or a logo: the frame box fits, the template covers it.
- Images wider than the slide inside a
\makeboxor\resizeboxthat hides the excess. - Text that fits but is unreadably small.
For these, look at the pages: text deck.tex --from N --to N shows which text reached page N,
and nothing replaces opening the PDF.