0

As the title says. I use \beamerdefaultoverlayspecification{<+->} in my presentation. By default, beamer displays a new frame with the first item or piece of text already visible. However, I want to first display only the frametitle (e.g., the title is a question I want to explain before I go on to provide answers). Right now, I can do this manually like this:

\begin{frame}\frametitle{This title needs some explanation}
  \pause
...

But this has to be done for each frame, and it also has all sorts of unexpected effects (e.g., it seems to mess with the beamerpauses counter, but I don't understand what it does exactly). Is there a way to have a pause after the frametitle by default for all the frames? And if there is, is it also possible to revert back to the default behavior for a single frame (in case I don't want a pause after the title on a specific frame)?

1

You can patch \beamer@checkframetitle commmand and add \pause command if boolean \ifafterftpause is true, for frames without a pause after frametitle just change to \afterftpausefalse

\documentclass{beamer}
\usepackage{lipsum}

\newif\ifafterftpause
\afterftpausetrue % default

\makeatletter
\def\beamer@checkframetitle{%
\@ifnextchar\bgroup\beamer@inlineframetitle{{}\ifafterftpause\pause\fi}}
\def\beamer@inlineframetitle#1{%
\@ifnextchar\bgroup{\frametitle{#1}\framesubtitle}{\frametitle{#1}\relax}%
\ifafterftpause\pause\fi    
 }
\makeatother     

\begin{document}

\begin{frame}
\frametitle{Title}
    \lipsum[2]

\pause

\begin{itemize}
\item text
\item text
\end{itemize}

\end{frame}

{\afterftpausefalse %  no pause after  frame title    

\begin{frame}{Title}
    \lipsum[1]
\end{frame}
}

\begin{frame}{Title}
    \lipsum[2]

\pause

\begin{itemize}
\item text
\item text
\end{itemize}

\end{frame}

\end{document}

With beamerswitch class

You need to add \mode<all> at the beginning

\PassOptionsToClass{aspectratio=169,10pt}{beamer} 
\documentclass[beamer]{beamerswitch}
\usepackage{lipsum}

\newif\ifafterftpause
\afterftpausetrue % default

\makeatletter
\def\beamer@checkframetitle{%
\@ifnextchar\bgroup\beamer@inlineframetitle{{}\ifafterftpause\pause\fi}}
  \def\beamer@inlineframetitle#1{%
    \@ifnextchar\bgroup{\frametitle{#1}\framesubtitle}{\frametitle{#1}\relax}%
\ifafterftpause\pause\fi    
  }
\makeatother

\title{Title}

\begin{document}

% for beamerswitch class
\mode  
<all>

{\afterftpausefalse\frame{\titlepage}}

\begin{frame}
\frametitle{Title}
    \lipsum[2]

\pause

\begin{itemize}
\item text
\item text
\end{itemize}

\end{frame}

{\afterftpausefalse %  no pause after  frame title    

\begin{frame}{Title}
    \lipsum[1]
\end{frame}
}

\begin{frame}{Title}
    \lipsum[2]

\pause

\begin{itemize}
\item text
\item text
\end{itemize}

\end{frame}

\end{document}
7
  • This does not work for me. In fact, what seems to happen is that the frametitle is displayed first, then I have to press <space> as many times as there are overlays on the frame, and then everything is displayed at the last step. For instance, if the frame has only an itemize environment with two items, the title is displayed first, then I have to press <space> twice while the frame remains empty, and then both items are displayed after hitting <space> a third time. Obviously, not what I was after. – GrB Sep 22 '20 at 12:59
  • @GrB answer updated. – Salim Bou Sep 22 '20 at 14:09
  • Salim, this works, except that as soon as you add \frame{\titlepage}, the file begins with an empty frame and the title is displayed on the second. – GrB Sep 22 '20 at 20:28
  • @GrB try with {\afterftpausefalse\frame{\titlepage}}. – Salim Bou Sep 22 '20 at 20:36
  • OK. Thanks. It works, but I would like to use the beamerswitch package, and as soon as I substitute \documentclass[aspectratio=169,10pt]{beamer} by \PassOptionsToClass{aspectratio=169,10pt}{beamer} \documentclass[beamer]{beamerswitch}, I get the empty frame at the beginning again. – GrB Sep 22 '20 at 21:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.