如何重置 beamer 中的部分编号?

如何重置 beamer 中的部分编号?

我想在投影机的某个部分启动时重置部分编号。

所以我尝试了:

\setcounter{section}{0}

那是行不通的。

经过搜索我发现了这个:

\makeatletter
\numberwithin{section}{part}
\AtBeginPart{\beamer@tocsectionnumber=0\relax}
\makeatother

更轻松地支持零件内的编号部分

它曾经工作过一两次,然后我开始清理,现在它再也无法工作了。我试图将它移入文档和序言中。我还更改了该部分的编号和标题,但我不知道这是否会影响它。

MWE:

\documentclass{beamer}

\setbeamerfont{block title}{size={}}
\setbeamercolor{titlelike}{parent=structure,bg=white}

\usetheme[]{Frankfurt}

\setbeamertemplate{navigation symbols}{}


\AtBeginSection[]{\begin{frame}\frametitle{Agenda}\tableofcontents[currentsection,hideallsubsections]\end{frame}}

\AtBeginDocument{\renewcommand*{\partname}{Theme}}


\begin{document}
\makeatletter
\numberwithin{section}{part}
\AtBeginPart{\beamer@tocsectionnumber=0\relax}
\makeatother


\AtBeginPart{\frame{\partpage}}

\setcounter{part}{2}
\setcounter{section}{0}
\part{1st}
\section{First}
\begin{frame}
First
\end{frame}

\setcounter{part}{3}
\setcounter{section}{0}
\part{2nd}
\section{First}
\begin{frame}
First
\end{frame}

\end{document}

答案1

每当开始新的部分时,将计数器\beamer@tocsectionnumber=0设置为零就足够了:section

\documentclass{beamer}
\usetheme[]{Frankfurt}

\setbeamerfont{block title}{size={}}
\setbeamercolor{titlelike}{parent=structure,bg=white}
\setbeamertemplate{navigation symbols}{}

\AtBeginSection[]{%
  \begin{frame}\frametitle{Agenda}\tableofcontents[currentsection,hideallsubsections]\end{frame}}

\AtBeginDocument{\renewcommand*{\partname}{Theme}}

\makeatletter
\AtBeginPart{%
  \beamer@tocsectionnumber=0\relax
  \setcounter{section}{0}
  \frame{\partpage}%
}
\makeatother

\begin{document}
\part{1st}
\section{Part One - Section~\thesection}
\begin{frame}
First
\end{frame}

\part{2nd}
\section{Part Two - Section~\thesection}
\begin{frame}
First
\end{frame}

\end{document}

相关框架的图像显示了计数器section和目录中导航编号的所需行为:

在此处输入图片描述

在此处输入图片描述

相关内容