beamer \mode* 都市主题和突出

beamer \mode* 都市主题和突出

使用时,使用-frame 选项\mode*似乎会使 beamer 与主题混淆,使得使用后所有后续帧都停留在此模式,尽管不处于活动状态。metropolisstandoutstandoutstandout

这是一个简单的例子:

\documentclass{beamer}
\usepackage[utf8]{inputenc}

\usetheme{metropolis}

\begin{document}
    \mode*
    \begin{frame}{test}
        
    \end{frame}

    \begin{frame}[standout]{test standout}
    123
    \end{frame}

    \begin{frame}{test no standout}
        
    \end{frame}


\end{document}

我本以为standout-frame 后面的框架不是以standout-mode 排版的,但不幸的是,它确实如此。我知道删除\mode*可以解决这个问题。但我使用的结构非常方便,而且可以简化我的文档,因为我不必在每个框架文本之间使用选项\mode<article>{}。所以,我想知道这种行为是故意的还是有解决方法?

答案1

2024 年更新:

您可以使用moloch主题来避免这个问题,该主题是 Metropolis 主题的一个更现代的分支:

\documentclass{beamer}
\usepackage[utf8]{inputenc}

\usetheme{moloch}% modern fork of the metropolis theme

\begin{document}
    \mode*
    \begin{frame}{test}
        
    \end{frame}

    \begin{frame}[standout]{test standout}
    123
    \end{frame}

    \begin{frame}{test no standout}
        
    \end{frame}


\end{document}

原始答案:

这个问题已经在 github 上的开发版本中修复了,请参阅https://github.com/matze/mtheme/issues/335

在 ctan 发布新版本之前,您可以手动安装开发版本或使用以下解决方法:

\documentclass{beamer}
\usepackage[utf8]{inputenc}

\usetheme{metropolis}

\makeatletter
  \pretocmd{\beamer@reseteecodes}{%
    \ifbool{metropolis@standout}{
      \endgroup
      \boolfalse{metropolis@standout}
    }{}
  }{}{}
\makeatother

\begin{document}
    \mode*
    \begin{frame}{test}
        
    \end{frame}

    \begin{frame}[standout]{test standout}
    123
    \end{frame}

    \begin{frame}{test no standout}
        
    \end{frame}


\end{document}

相关内容