相关问题:有没有什么办法可以用投影仪生成帧列表?
考虑以下 MWE:
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\newif\ifframeinlbf
\frameinlbftrue
\makeatletter
\newcommand\listofframes{\@starttoc{lbf}}
\makeatother
\addtobeamertemplate{frametitle}{}{%
\ifframeinlbf
\addcontentsline{lbf}{section}{\protect\makebox[2em][1]{%
\protect\usebeamercolor[fg]{structure}\insertframenumber\hfill}%
\insertframetitle\par}%
\else\fi
}
\begin{document}
\frameinlbffalse
\begin{frame}
\frametitle{List of frames}
\listofframes
\end{frame}
\frameinlbftrue
\begin{frame}
\frametitle{First frame}
\only<1-2>{Água mole em pedra dura \ldots}
\only<2>{\ldots tanto bate até que fura.}
\end{frame}
\begin{frame}
\frametitle{Second frame}
Água mole em pedra dura tanto bate até que fura.
\end{frame}
\end{document}
在“帧列表”框中,“第一帧”出现了两次。我该怎么做才能让它只出现一次?
答案1
幸运的是,已经有很多命令可以只在某些覆盖层上执行操作。这个命令将仅为覆盖层 1 创建条目:
\newcommand\frametocentry{%
\ifframeinlbf
\addcontentsline{lbf}{section}{\protect\makebox[2em][1]{%
\protect\usebeamercolor[fg]{structure}\insertframenumber\hfill}%
\insertframetitle\par}%
\else\fi
}
\addtobeamertemplate{frametitle}{}{%
\only<1>{\frametocentry}
}