我正在尝试修改我的 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
文件,将会看到信息行标题是用而不是模板定义的。因此,如果您想更改此主题,最好采用原始定义并根据您的喜好进行更改。这就是我在以下代码中所做的。原始内容已被复制并转换为,插入+之间并更改为显示。infolines
beamercolorbox
section 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}
结果如下: