Beamer 从导航编号中排除幻灯片

Beamer 从导航编号中排除幻灯片

我的目标是展示不同的源代码版本。为了便于阅读,我更喜欢将这些版本放在不同的框架上,但为了组织演示,它应该看起来像一个框架。可以通过 更改页码计数器\addtocounter{framenumber}{-1}

这是一个例子:

\documentclass{beamer}
\usepackage{listings}
\usepackage[english]{babel}

\usetheme{Berlin}
\setbeamertemplate{footline}[frame number]

\begin{document}

\section{Test}
\subsection{Test}

\begin{frame}[fragile]{My Code}

\begin{lstlisting}[mathescape=true]
class ClassA {
 public void methodA() {
  new ClassB().methodB1();
 }
}
 \end{lstlisting}
\end{frame}

\begin{frame}[fragile]{My Code}
\addtocounter{framenumber}{-1}

\begin{lstlisting}[mathescape=true]
class ClassA {
 public void methodA() {
  new ClassB().methodC1();
 }
}
 \end{lstlisting}
\end{frame}

\begin{frame}[fragile]{Final Remarks}
...
\end{frame}

\end{document}

但我找不到更改导航的解决方案。使用设置计数器\setcounter{subsection}{1}没有设置正确的计数器,因为这似乎设置了子部分,而不是子部分中的帧号。有没有办法找到计数器,例如在所有定义的计数器列表中?

隐藏 Beamer 中迷你框架导航中的部分幻灯片与解决方案非常相似,但如果我使用它,当前导航圆圈不会突出显示。有没有一种解决方案,使当前(最后一帧)的圆圈保持突出显示,但导航中没有添加圆圈?

答案1

弄乱迷你框架导航很棘手,除非真的有必要,否则我不会这样做。

相反,只需使用一个框架并将其分成几个覆盖层:

\documentclass{beamer}
\usepackage{listings}
\usepackage[english]{babel}

\usetheme{Berlin}
\setbeamertemplate{footline}[frame number]

\begin{document}

\section{Test}
\subsection{Test}

\begin{frame}[fragile]{My Code}

\begin{onlyenv}<1>
\begin{lstlisting}[mathescape=true]
class ClassA {
 public void methodA() {
  new ClassB().methodB1();
 }
}
 \end{lstlisting}
\end{onlyenv}

\begin{onlyenv}<2>
\begin{lstlisting}[mathescape=true]
class ClassA {
 public void methodA() {
  new ClassB().methodC1();
 }
}
 \end{lstlisting}
\end{onlyenv}
\end{frame}

\begin{frame}[fragile]{Final Remarks}
...
\end{frame}

\end{document}

相关内容