Beamer — 动态更改导航栏中的标题

Beamer — 动态更改导航栏中的标题

有没有办法动态改变导航栏中整个演示文稿的标题?

现在:

在此处输入图片描述

需要:

在此处输入图片描述

导航栏中应显示所有 6 个圆圈,而不仅仅是当前部分的 6 个圆圈中的 3 个!

这是我的代码:

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{ucs}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{color}
\usepackage{mathpazo}
\usepackage{tikz}
\usepackage{pgfplots}

\useoutertheme[subsection=false, shadow]{miniframes}
\useinnertheme{default}
\usefonttheme{serif}

\setbeamerfont{title like}{shape=\scshape}
\setbeamerfont{frametitle}{shape=\scshape}
\setbeamercolor*{lower separation line head}{bg=black!10} 
\setbeamercolor*{normal text}{fg=black, bg=white} 
\setbeamercolor*{alerted text}{fg=red} 
\setbeamercolor*{example text}{fg=black} 
\setbeamercolor*{structure}{fg=black} 
\setbeamercolor*{palette tertiary}{fg=black, bg=black!5} 
\setbeamercolor*{palette quaternary}{fg=black, bg=black!5} 

\beamertemplatenavigationsymbolsempty

\begin{document}

% The miniframe circles should not be splitted in two groups (if possible)

\section*{Title 1} % <-- Only this title should be visible in the first section
\subsection*{}

\begin{frame}\end{frame}
\begin{frame}\end{frame}
\begin{frame}\end{frame}

\section*{Title 2} % <-- ...and only this title in the second section
\subsection*{}

\begin{frame}\end{frame}
\begin{frame}\end{frame}
\begin{frame}\end{frame}

\end{document}

简单的方法可能是将演示文稿的标题设置为小节标题 - 这可能吗?

答案1

\documentclass{beamer}您可以在和之间使用以下代码\begin{document}

\usepackage{etoolbox}
\makeatletter
\beamer@compresstrue
\patchcmd{\insertnavigation}{\hskip-1.875ex plus-1fill}{}{}{}
\apptocmd{\partentry}{\beamer@xpos=0\relax}{}{}
\def\sectionentry#1#2#3#4#5{% section number, section title, page
  \ifnum#5=\c@part%
  \hbox{\def\insertsectionhead{#2}%
    \def\insertsectionheadnumber{#1}%
    \def\insertpartheadnumber{#5}%
    {%
      \usebeamerfont{section in head/foot}\usebeamercolor[fg]{section in head/foot}%
      \ifnum\c@section=#1%
        \rlap{\hyperlink{Navigation#3}{{\usebeamertemplate{section in head/foot}}}}%
      \fi}%
  }%
  \fi\ignorespaces}
\makeatother

示例文档的标题,其中显示了所有六个小框架

获取所有迷你框架并仅显示当前章节标题的技巧与Beamer 信息线外部主题带有仅适用于当前部分的迷你框架项目符号:

  • 为了简单起见,使用以下选项,所有迷你框架都显示在一行中compress

    \beamer@compresstrue
    
  • 删除填充空间以使导航栏左对齐:

    \patchcmd{\insertnavigation}{\hskip-1.875ex plus-1fill}{}{}{}
    
  • 重置每个部分开始处的迷你框架位置,因为这将不再在每个部分的开始处执行,以创建连续的迷你框架线:

    \apptocmd{\partentry}{\beamer@xpos=0\relax}{}{}
    
  • 重写\sectionentry宏以不重置迷你框架的位置并仅显示当前部分标题。这里重要的是将标题包裹起来,\rlap以便它不占用任何空间,否则迷你框架行中会出现间隙:

    \def\sectionentry#1#2#3#4#5{...}
    

相关内容