将部分添加到投影仪目录但不添加到导航栏

将部分添加到投影仪目录但不添加到导航栏

我希望 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}

相关内容