\setbeamertemplate 在 **infolines** 外部主题中无效

\setbeamertemplate 在 **infolines** 外部主题中无效

我正在尝试修改我的 Beamer 标题中的部分。我使用外部主题信息线。这个命令\setbeamertemplate对我而言没有效果。下面是我的 MWE:

\documentclass{beamer}
\useoutertheme{infolines}
\setbeamertemplate{section in head/foot}{\hfill\thesection.\insertsectionhead}
\setbeamertemplate{section in head/foot shaded}{\hfill\thesection.\insertsectionhead}
\begin{document}
    \section{title}
    \begin{frame}
        content...
    \end{frame}
\end{document}

为什么我不能使用命令重新定义页眉或页脚中的部分\setbeamertemplate

答案1

如果您查看定义外部主题的beamerouterthemeinfolines.sty文件,将会看到信息行标题是用而不是模板定义的。因此,如果您想更改此主题,最好采用原始定义并根据您的喜好进行更改。这就是我在以下代码中所做的。原始内容已被复制并转换为,插入+之间并更改为显示。infolinesbeamercolorboxsection in head/foot\defbeamertemplate*{headline}\setbeamertemplate\makeatother\makeatletter\thesection.\insertsectionhead

\documentclass{beamer}

\makeatletter
\setbeamertemplate{headline}
{
  \leavevmode%
  \hbox{%
  \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.65ex,dp=1.5ex,right]{section in head/foot}%
    \usebeamerfont{section in head/foot}\thesection.\insertsectionhead\hspace*{2ex}
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.65ex,dp=1.5ex,left]{subsection in head/foot}%
    \usebeamerfont{subsection in head/foot}\hspace*{2ex}\insertsubsectionhead
  \end{beamercolorbox}}%
  \vskip0pt%
}
\makeatother

\begin{document}
    \section{title}
    \subsection{subsection}
    \begin{frame}
        content...
    \end{frame}
    \section{new title}
    \subsection{another subsection}
    \begin{frame}
        content...
    \end{frame}
\end{document}

结果如下:

在此处输入图片描述

相关内容