当我进行演示时,我通常按以下方式组织我的框架:
- 我创建了一个关于某个主题的框架,如标题所示
only
在该框架内,我使用以下命令为每个子主题创建一张幻灯片- 在每个子主题幻灯片中,我通常会放一个动画
itemize
列表,其中包含\item<N->
为了简化询问与每张幻灯片相关的问题,我想按以下方式对幻灯片进行编号:
- 每帧计数应持续进行
- 框架子主题的每张幻灯片都应编号为
Nframe.Nslide
例如,如果我正在显示第二帧的第三张幻灯片,我希望显示计数器2.3
。
据我所知,编号有两种可能:
- 帧号(在我的例子中,它不起作用,因为计数器不会随着子主题幻灯片而增加)
- 页码(对我来说,它不起作用,因为它还计算
itemize
列表中的动画)。
下面是幻灯片中写明所需行为的一个例子:
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usetheme{Dresden}
\setbeamersize{text margin left=.3cm,text margin right=.5cm}
\setbeamertemplate{itemize items}[triangles]
\title[]{Title}
\author[]{Author}
\date{date}
\setbeamercovered{transparent}
\setbeamertemplate{page number in head/foot}[totalpagenumber]
%1 titolo
\begin{document}
\beamertemplatenavigationsymbolsempty
\begin{frame}
\maketitle
\end{frame}
\begin{frame}{Frame 1}
Frame 1, slide 1\\
Should be numbered as slide 1
\end{frame}
\begin{frame}{Frame 2}
\only<1-2>{
\framesubtitle{Frame 2, slide 1}
Should be numbered as slide 2.1
\begin{itemize}
\item <1-> Even if I use itemize
\item <2-> With animations
\end{itemize}
}
\only<3>{
\framesubtitle{Frame 2, slide 2}
Should be numbered as slide 2.2
}
\end{frame}
\begin{frame}{Frame 3}
Frame 3, slide 1\\
Should be numbered as slide 3
\end{frame}
\end{document}
提前致谢 :)
答案1
在幕后,\item<>
使用与相同的机制\only<>
。解开它们会很复杂。
相反,你可以用不同的方式组织你的演示文稿:每个主题使用一个部分、小节或小小节,每个子主题使用一个框架,并在框架内使用尽可能多的动画:
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usetheme{Dresden}
\setbeamersize{text margin left=.3cm,text margin right=.5cm}
\setbeamertemplate{itemize items}[triangles]
\title[]{Title}
\author[]{Author}
\date{date}
\setbeamercovered{transparent}
% total number of sections %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{totcount}
\newcounter{totalsection}
\regtotcounter{totalsection}
\AtBeginDocument{%
\pretocmd{\section}{\refstepcounter{totalsection}}{}{}%
}%
% fix for xcntperchap from https://topanswers.xyz/tex?q=1987#a2230
\ExplSyntaxOn % fix xcntperchap
\cs_set_eq:NN \c_zero \c_zero_int
\ExplSyntaxOff
\usepackage{xcntperchap}
\RegisterCounters{section}{framenumber}
\newcounter{FrameInSection}
\AtBeginEnvironment{frame}{
\ifnum\thesection>0
\setcounter{FrameInSection}{\ObtainTrackedValueExp[\thesection]{section}{framenumber}}
\fi
}
\setbeamertemplate{page number in head/foot}{%
\insertsectionnumber
\ifnum\theFrameInSection>1
.\insertframenumber
\fi
}
\AtBeginSection{\setcounter{framenumber}{0}}
\setbeamertemplate{headline}{}
%1 titolo
\begin{document}
\beamertemplatenavigationsymbolsempty
\begin{frame}[noframenumbering,plain]
\maketitle
\end{frame}
\section{Topic 1}
\begin{frame}
\frametitle{Topic 1}
Frame 1, slide 1
Should be numbered as slide 1
\end{frame}
\section{Topic 2}
\begin{frame}
\frametitle{Topic 2}
\framesubtitle{Frame 2, slide 1}
Should be numbered as slide 2.1
\begin{itemize}
\item <1-> Even if I use itemize
\item <2-> With animations
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Topic 2}
\framesubtitle{Topic 2, slide 2}
Should be numbered as slide 2.2
\end{frame}
\section{Topic 3}
\begin{frame}
\frametitle{Topic 3}
Frame 3, slide 1
Should be numbered as slide 3
\end{frame}
\end{document}