如何创建所有投影仪幻灯片的列表(按其框架标题),就像常规乳胶文档中的目录一样?我只需要它作为我演示文稿的鸟瞰图,因此它一定不是任何花哨的东西。
它还应该能够处理我在演讲结束时的以下幻灯片
\begin{frame}
{\Huge
\vspace {0.35\textwidth}
% Don't remove
\begin{columns}[ccc]
\begin{column}{0.3\textwidth}
\end{column}
% Don't remove
\begin{column}{0.3\textwidth}
\textbf{Thanks!}
\end{column}
% Don't remove
\begin{column}{0.3\textwidth}
\end{column}
\end{columns}
}
\end{frame}
答案1
你好这是我的解决方案:
\documentclass{beamer}
\usepackage{etextools}
\makeatletter
%Here comes the Framelist
%
\newcommand{\printframelist}{ }
\newcommand{\@savefrml}{ }
\newcommand{\frameliston}{%
\let\oldframetitle\frametitle
\newcommand{\tgframelistfronthook}{$\cdot$}
\newcommand{\tgframelistbackhook}{\\ }
\newcommand\myaddto[1]{%
\write\@auxout{\noexpand\@writefile{frml}{\noexpand ##1}}}
\renewcommand{\printframelist}{\@starttoc{frml}}
\renewcommand{\frametitle}[1]{\oldframetitle{##1}%
\xifstrequal{##1}{\@savefrml}{}{
\myaddto{ \noexpand%
\tgframelistfronthook ##1 \noexpand\tgframelistbackhook}%
}
\global\def\@savefrml{##1}%
}
}
\makeatother
\frameliston
\begin{document}
\frame{\frametitle{FIRST}}
\frame{\frametitle{Second}}
\frame{\frametitle{Third}}
\begin{frame}
\printframelist
\end{frame}
% The following should turn the framlist off for one slide when\anotherft is used
\let\anotherft\oldframetitle
\frame{\anotherft{FIRST A}}
\frame{\frametitle{Second A}}
\frame{\frametitle{Third A}}
\end{document}
这使用非常基本的 LaTeX 机制来创建外部文件(如 toc)。extetools 用于比较字符串并决定是否打印标题(用于覆盖)。请参阅bitbucket.org/tobig/hohenheimbeamertheme/
重新定义\tgframelistbackhook
并\tgframelistfronthook
随心所欲。
编辑:上面的示例显示,您将所有columns
内容放入了框架标题中。然后它就坏了。请记住,frame
环境定义为
\begin{frame}<⟨overlay specification⟩>[<⟨default overlay specification⟩>][⟨options⟩]{⟨title⟩}{⟨subtitle⟩}
⟨environment contents⟩
\end{frame}
(参见 beamer 文档)
后面的第一个括号\begin{frame}
将被解释为标题。这将起作用:
\begin{frame}
\Huge
\vspace {0.35\textwidth}
% Don't remove
\begin{columns}
\begin{column}{0.3\textwidth}
\end{column}
% Don't remove
\begin{column}{0.3\textwidth}
\textbf{Thanks!}
\end{column}
% Don't remove
\begin{column}{0.3\textwidth}
\end{column}
\end{columns}
\end{frame}