迷你框架导航绘制不正确

迷你框架导航绘制不正确

我想使用我在问题中发现的一个技巧Beamer 导航圈没有子部分吗?抑制 的beamer迷你框架导航中每个子部分的多行“框架点”。相反,我希望每个部分都有一行框架点。这在外部主题 中失败miniframe,但在外部主题 中成功smoothbars

\documentclass{beamer}
\usepackage[latin1]{inputenc}
\usetheme{M21}
\title
{Long Title}  
\subtitle{Subtitle}
\author{Christoph}
\date{}
\subject{}
\begin{document}
\begin{frame}
  \titlepage
\end{frame}    
\section[One]{Sec 1}
\setcounter{subsection}{1}
\begin{frame}
  \frametitle{Some Frame}
  \framesubtitle{its subtitle}
  and some bla bla
\end{frame}
\begin{frame}
  \frametitle{More...}
  \framesubtitle{more subtitle}
  and some bla bla
\end{frame}
\begin{frame}
  \frametitle{Last Frame in Section}
  and some bla bla
\end{frame}

\section{Sec 2}
\setcounter{subsection}{1}
\begin{frame}
  \frametitle{Some Frame}
  \framesubtitle{its subtitle}
  and some bla bla
\end{frame}
\begin{frame}
  \frametitle{More...}
  \framesubtitle{more subtitle}
  and some bla bla
\end{frame}
\begin{frame}
  \frametitle{Last Frame in Section}
  and some bla bla
\end{frame}

\end{document}

我的主题文件beamerthemeM21.sty包含以下内容:

\usepackage{remreset}
\makeatletter
\@removefromreset{subsection}{section}
\makeatother

\mode<presentation>
\setbeamercovered{transparent}

\mode<all>
\useoutertheme[subsection=false]{smoothbars}
%\useoutertheme[subsection=false]{miniframes}

\setbeamertemplate{navigation symbols}{}

现在,MWE 应该显示正确的点,如下所示:

One        Sec 2
Ooo        ooo

如果您注释smoothbars并激活miniframes,则点线将向右移动,并且每个部分的移动量都会增加:

One        Sec 2
  Ooo          ooo

我该如何避免这种情况?我哪里搞砸了?

答案1

这里的问题是外部主题smoothbars使用了 beamer 选项compress以便将迷你帧合并到一行中,而miniframes默认情况下不会这样做。因此,为了删除虚假空间,您需要激活此压缩,可以通过以下方式完成

\beamer@compresstrue

在 中beamerthemeM21.sty\makeatletter ... \makeatother当然包含在 中)。

顺便说一句:您不需要\setcounter{subsection}{1}像在 MWE 中那样在每个部分中使用,执行一次(例如在您的主题文件中)就足够了。

修正后的beamerthemeM21.sty样子如下:

\usepackage{remreset}
\makeatletter
\@removefromreset{subsection}{section}
\beamer@compresstrue
\makeatother
\setcounter{subsection}{1}

\mode<presentation>
\setbeamercovered{transparent}

\mode<all>
\useoutertheme[subsection=false]{miniframes}

\setbeamertemplate{navigation symbols}{}

相关内容