С классом Beamerswitch

С классом Beamerswitch

Как следует из названия. Я использую \beamerdefaultoverlayspecification{<+->}в своей презентации. По умолчанию, Beamer отображает новый фрейм с первым элементом или фрагментом текста, который уже виден. Однако я хочу сначала отобразить только заголовок фрейма (например, заголовок — это вопрос, который я хочу объяснить, прежде чем перейти к ответам). Сейчас я могу сделать это вручную следующим образом:

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

Но это нужно делать для каждого кадра, и это также имеет всевозможные неожиданные эффекты (например, это, кажется, портит счетчик пауз бимера, но я не понимаю, что именно это делает). Есть ли способ сделать паузу после заголовка кадра по умолчанию для всех кадров? И если да, можно ли также вернуться к поведению по умолчанию для одного кадра (в случае, если я не хочу паузу после заголовка в определенном кадре)?

решение1

Вы можете пропатчить \beamer@checkframetitleкоманду и добавить \pauseкоманду, если логическое значение \ifafterftpauseравно true, для кадров без паузы после заголовка кадра просто измените на\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}

С классом Beamerswitch

Вам нужно добавить \mode<all>в начале

\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}

Связанный контент