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