
Как следует из названия. Я использую \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}