我需要自定义Berkeley
主题PaloAlto
,或者只是自定义sidebar
外部主题,以便在移除侧边栏时将徽标保留在其默认位置(左上角)。目前,我只能移除侧边栏(通过使用选项width=0
,但这也会移除徽标。
作为一个附带问题,我还想在幻灯片底部添加一个水平灰色矩形,这与内容布局无关,也就是说,它的存在不会改变幻灯片中任何内容的输出,无论是缩放还是重新排列。
答案1
您可以重新定义headline
和frametitle
模板;可以使用辅助长度保存原始侧边栏宽度以供以后使用。对于底部的水平矩形,footline
使用beamercolorbox
所需宽度、高度(和深度)定义模板,并使用先前定义的颜色:
\documentclass{beamer}
\usetheme{PaloAlto}
\setbeamercolor{footlinebox}{fg=gray,bg=gray!60}
\makeatletter
\newdimen\tmpsbwd
\tmpsbwd=\beamer@sidebarwidth
\beamer@sidebarwidth=0pt
\setbeamertemplate{headline}
{%
\begin{beamercolorbox}[wd=\paperwidth]{frametitle}
\usebeamercolor[bg]{logo}%
\hbox to \tmpsbwd{\hss\vbox to
\beamer@headheight{\vss\hbox{\color{fg}\insertlogo}\vss}\hss}%
\end{beamercolorbox}
}
\setbeamertemplate{frametitle}
{%
\nointerlineskip%
\vskip-\beamer@headheight%
\vbox to \beamer@headheight{%
\vfil
\leftskip=-\beamer@leftmargin%
\advance\leftskip by\tmpsbwd%
\advance\leftskip by0.3cm%
\rightskip=-\beamer@rightmargin%
\advance\rightskip by0.3cm plus1fil%
{\usebeamercolor[fg]{frametitle}\usebeamerfont{frametitle}\insertframetitle\par}%
{\usebeamercolor[fg]
{framesubtitle}\usebeamerfont{framesubtitle}\insertframesubtitle\par}%
\vbox{}%
\vskip-1em%
\vfil
}%
}
\setbeamertemplate{footline}
{%
\begin{beamercolorbox}[wd=\paperwidth,ht=1ex,dp=1ex]{footlinebox}
\end{beamercolorbox}
}
\makeatother
\setbeamersize{sidebar width left=0cm}
\logo{\includegraphics[width=1.5cm]{cat}}
\begin{document}
\begin{frame}
\frametitle{Test title}
\framesubtitle{Test subtitle}
Test frame
\end{frame}
\end{document}