我想在 Beamer 中呈现一个目录,显示先前的项目,并将未来的项目灰显。但我无法让它完全工作。这是一个 MWA:
\documentclass{beamer}
\usetheme{Luebeck}
\setbeamercovered{transparent}
\usepackage{totcount} % Get the last number of a counter
\regtotcounter{section}
\newcounter{mytmp}
\begin{document}
\section{Section 1}
\frame{\tableofcontents}
\section{Section 2}
\subsection{2.1}
\frame{\tableofcontents[hideallsubsections]}
\section{Section 3}
\setcounter{mytmp}{\thesection}
\stepcounter{mytmp}
\frame{%
\tableofcontents[sections={1-\thesection},hideallsubsections]
\tableofcontents[sections={\themytmp-\totvalue{section}},currentsection]
}
\section{Section 4}
\frame{}
\section{Section 5}
\frame{}
\section{Section 6}
\frame{}
\section{Section 7}
\frame{}
\section{Section 8}
\frame{}
\subsection{8.1}
\frame{}
\subsection{8.2}
\frame{}
\section{Section 9}
\frame{}
\end{document}
输出如下:
标准目录。
使用该选项的 Toc
hideallsubsections
。为什么项目之间的距离增加了?如何修复?目录几乎显示了我想要完成的任务。为什么 3 和 4 之间的距离这么窄?如何修复?再一次,
hideallsubsections
可见列表中的 弄乱了项目之间的距离。如果所有这些都可以修复,是否有可能创建更好的解决方案,其中\setcounter{mytmp}{\thesection}
和\stepcounter{mytmp}
不需要每次都写入,即创建一个\mytableofcontents
解决所有问题的新命令?
我也尝试过在\tableofcontents
命令周围加上\setbeamercovered{still covered={\opaqueness<1->{15}},again covered={\opaqueness<1->{100}}}
和\setbeamercovered{still covered={\opaqueness<1->{15}},again covered={\opaqueness<1->{15}}}
,可惜没有成功。不过,这适用于逐项列表!
答案1
我认为以下源代码可以给出您想要的结果:
\documentclass{beamer}
\usetheme{Luebeck}
\setbeamercovered{transparent}
\usepackage{totcount} % Get the last number of a counter
\regtotcounter{section}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip0.5em}{}{}
\makeatother
\AtBeginSection{%
\frame{%
\tableofcontents[sections={1-\thesection},hideallsubsections]%
\unskip\vskip0.5em
\tableofcontents[sections={\the\numexpr\thesection+1\relax-\totvalue{section}},currentsection,hideallsubsections]
}}
\begin{document}
\frame{\tableofcontents[hideallsubsections]}
\section{Section 1}
\section{Section 2}
\subsection{2.1}
\section{Section 3}
\section{Section 4}
\section{Section 5}
\section{Section 6}
\section{Section 7}
\section{Section 8}
\subsection{8.1}
\subsection{8.2}
\section{Section 9}
\end{document}
我用来\numexpr
做计算,用来etoolbox
修补beamer
代码。