如何获取 beamer 中所有部分和小节的总和

如何获取 beamer 中所有部分和小节的总和

我想确定我的目录需要多少页,它将显示在两列中,每页有 10 个(子)部分。

所以如果我有 8 个部分和 20 个小节,代码应该返回 28。

编辑:如果有人知道只需一次运行的解决方案,我们将不胜感激。

答案1

请参阅下面的改进版本!!!

第一的:快速而粗略的解决方案:只要没有\chapter重置计数器的命令,这种方法就可以起作用section

但是,subsection计数器通过以下方式重置\section:要么放弃重置,要么\subsection使用另一个总子节计数器应用特殊的重新定义。

毕竟,该值存储在计数器变量中\mytotalcounter

\documentclass{beamer}

\usepackage{totcount}

\newcounter{mytotalcounter}

\begin{document}
\regtotcounter{section}
\regtotcounter{subsection}

\newcounter{totalsubsection}

\regtotcounter{totalsubsection}%

\let\BeamerSubsection\subsection

\renewcommand{\subsection}[1]{%
\refstepcounter{totalsubsection}%
\BeamerSubsection{#1}%
}%



\setcounter{mytotalcounter}{\totvalue{section}}
\addtocounter{mytotalcounter}{\totvalue{totalsubsection}}

There are \themytotalcounter~section units

\section{A}
\subsection{A1}
\subsection{A2}
\subsection{A3}

\section{B}
\subsection{A1}
\subsection{A2}
\subsection{A3}

\section{C}
\subsection{A1}
\subsection{A2}
\subsection{A3}

\section{D}
\subsection{A1}
\subsection{A2}
\subsection{A3}

\section{E}
\subsection{A1}
\subsection{A2}
\subsection{A3}

\section{F}
\subsection{A1}
\subsection{A2}
\subsection{A3}

\section{G}
\subsection{A1}
\subsection{A2}
\subsection{A3}

\section{H}
\subsection{A1}
\subsection{A2}
\subsection{A3}


\end{document}

在此处输入图片描述

改良版

这不会重新定义\subsection命令,而是使用包\pretocmd中的宏etoolbox

\documentclass{beamer}%
\usepackage{etoolbox}%
\usepackage{totcount}%
\usepackage{forloop}%

\newcounter{mytotalcounter}%
\newcounter{totalsubsection}%

\regtotcounter{totalsubsection}%
\regtotcounter{section}%



\AtBeginDocument{%
\pretocmd{\subsection}{\refstepcounter{totalsubsection}}{\typeout{Yes, prepending was successful}}{\typeout{No, prepending was not it was successful}}%

\CalculateTotalSectionSubsection%
}%


\newcommand{\CalculateTotalSectionSubsection}{%
\setcounter{mytotalcounter}{\totvalue{section}}%
\addtocounter{mytotalcounter}{\totvalue{totalsubsection}}%
}%

\newcounter{loopsections}
\newcounter{loopsubsections}



\begin{document}

There are \themytotalcounter~(sub)section units
\forloop{loopsections}{1}{\number\value{loopsections} < 9}{%
\section{Section \Alph{loopsections}}
\forloop{loopsubsections}{1}{\number\value{loopsubsections} < 4}{%
\subsection{Subsection \Alph{loopsections}.\arabic{loopsubsections}}
}
}%

\end{document}

输出没有改变,所以我保留了旧的屏幕截图

相关内容