我正在编写自己的 beamer 主题,我有一些奇怪的想法来在 beamer 类中布局我的标题:我在与幻灯片开始的位置相对应的部分顶部和下方设置进度条,即:
---------- 第 1 部分
进度条设计如下:
\progressbar{\footerBarHeight}
\dimen0=\textwidth
\multiply\dimen0 by \insertframenumber
\divide\dimen0 by \inserttotalframenumber
\edef\progressbarwidth{\the\dimen0}
\leavevmode%
\begin{beamercolorbox}[wd=\textwidth,ht=.1ex,dp=.1ex]{progress bar}
\begin{beamercolorbox}[wd=\progressbarwidth,ht=.1ex,dp=.1ex]{progress bar progress}
\end{beamercolorbox}%
\end{beamercolorbox}%
因此,我的想法是使用 .toc 文件中的数据
\beamer@sectionintoc {1}{第 1 节}{2}{0}{1} \defcounter {refsection}{0}\relax \beamer@subsectionintoc {1}{1}{第 1.1 节}{7}{0}{1} \defcounter {refsection}{0}\relax \beamer@subsectionintoc {1}{2}{第 1.2 节}{10}{0}{1} \defcounter {refsection}{0}\relax \beamer@sectionintoc {2}{第 2 节}{13}{0}{2} \defcounter {refsection}{0}\relax \beamer@sectionintoc {3}{第 3 节}{22}{0}{3}
它提供章节开始的页码并将其与(例如\insertframenumber
)进行比较,以对齐并打印三个章节标题\insertsection
。
我的问题:
(1)我可以使用这些数据吗?Beamer 中是否已定义任何变量来获取页码@sectionintoc
?
(2)有没有更简单的方法来打印所有三个章节的标题?(也许对某事进行模数迭代)。
答案1
(1)是的\insertsectionstartpage
。请参阅手册第 65 页。
(2)是的,
\documentclass{beamer}
\begin{document}
\section{title of section 1}
\section{title of section 2}
\section{title of section 3}
\section{title of section 4}
\section{title of section 5}
\subsection{title of subsection 5-1}
\makeatletter
\def\beamer@endinputifotherversion#1{}
\def\beamer@sectionintoc#1#2#3#4#5{#2;}
\def\beamer@subsectionintoc#1#2#3#4#5#6{}
%\def\beamer@subsubsectionintoc#1#2#3#4#5#6#7{}
\frame{
\@input{\jobname.toc}
}
\end{document}