Beamer 中的标题目录

Beamer 中的标题目录

我想知道是否有人知道如何告诉 Beamer 如果有太多部分则将标题中的目录分成几列,否则将其保留在一列中。

我发现这个帖子非常有用

Beamer 与华沙主题:两列导航

但是,使用此代码,目录将始终显示在两列中,这并不总是美观的(例如,当只有 2 个部分时)。

我正在为我的机构制作一个定制模板,这就是为什么我需要让它尽可能的多功能。

我原本想在目录高度小于或等于标题高度时保留默认的 \insertsectionnavigation,否则进行划分。但我无法将其转换为正确的代码。

感谢您的帮助。

答案1

最简单的解决方案可能是检查部分总数。如果此数字大于相同值(示例中为 5),则显示您的自定义代码,否则显示正常导航。

[在“您想要的任何主题”处插入您的自定义代码]

\documentclass{beamer}
\usetheme{Warsaw}

\makeatletter
\setbeamertemplate{headline}{%
  \leavevmode%
  \@tempdimb=2.4375ex%
  \ifnum\beamer@subsectionmax<\beamer@sectionmax%
    \multiply\@tempdimb by\beamer@sectionmax%
  \else%
    \multiply\@tempdimb by\beamer@subsectionmax%
  \fi%
  \ifdim\@tempdimb>0pt%
    \advance\@tempdimb by 1.825ex%
    \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}%
      \vbox to\@tempdimb{\vfil%
          \ifnum\beamer@sectionmax<5
              \insertsectionnavigation{.5\paperwidth}%
             \else%
                 whatever theme you want
               \fi%
         \vfil}%
    \end{beamercolorbox}%
    \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{subsection in head/foot}%
      \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}%
    \end{beamercolorbox}%
  \fi%
}
\makeatother

\begin{document}

\section{a}\frame{a}
\section{a}\frame{a}
\section{a}\frame{a}
\section{a}\frame{a}
\section{a}\frame{a}
\section{a}\frame{a}
\section{a}\frame{a}
\section{a}\frame{a}
\section{a}\frame{a}
\section{a}\frame{a}

\end{document}

相关内容