我希望 Beamer 演示文稿中的所有部分都显示在目录中,但只有其中一部分显示在上方导航栏中(在下面的示例中,最后两个部分“三”和“四”应仅显示在目录中)。我尝试了此处描述的第二种解决方案:https://tex.stackexchange.com/a/154965/163378。结果是:
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usetheme{Darmstadt}
\makeatletter
\newcommand\addsectiontotoc[1]{%
\addtocontents{toc}{%
\protect\beamer@sectionintoc{\the\c@section}{#1}{\the\c@page}{\the\c@part}%
{\the\beamer@tocsectionnumber}}
}
\makeatother
\begin{document}
\begin{frame}
\tableofcontents
\end{frame}
\section{One}
\begin{frame}
\end{frame}
\begin{frame}
\end{frame}
\section{Two}
\begin{frame}
\end{frame}
\addsectiontotoc{Three}
\begin{frame}
\end{frame}
\addsectiontotoc{Four}
\begin{frame}
\end{frame}
\end{document}
如您所见,这里有两个问题。首先,“三”和“四”部分都带有数字“2”,而我希望它们分别带有数字“3”和“4”。其次,我希望导航栏中“三”和“四”部分下的幻灯片没有对应的点,而现在有与它们对应的点,这些点与“二”部分相关联。有什么方法可以修改此示例以满足我的期望?
答案1
您可以使用带有空可选参数的部分将其从标题导航中删除,例如\section[]{three}
。
要隐藏迷你框架,您可以像这样将其关闭:
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usetheme{Darmstadt}
\makeatletter
\let\beamer@writeslidentry@miniframeson=\beamer@writeslidentry%
\def\beamer@writeslidentry@miniframesoff{%
\expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{}% does not happen normally
{%else
% removed \addtocontents commands
\clearpage\beamer@notesactions%
}
}
\newcommand*{\miniframeson}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframeson}
\newcommand*{\miniframesoff}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframesoff}
\makeatother
\begin{document}
\begin{frame}
\tableofcontents
\end{frame}
\section{One}
\begin{frame}
\end{frame}
\begin{frame}
\end{frame}
\section{Two}
\begin{frame}
\end{frame}
\miniframesoff
\section[]{three}
\begin{frame}
\end{frame}
\section[]{four}
\begin{frame}
\end{frame}
\end{document}