目前,幻灯片侧面的轮廓上只突出显示了子部分。是否可以更改模板,以便在子部分中,相应部分保持突出显示。
\documentclass{beamer}
\mode<presentation>{\usetheme{Hannover}}
\begin{document}
\section{1}
\subsection{a}
\begin{frame}
stuff
\end{frame}
\subsection{b}
\begin{frame}
more stuff
\end{frame}
\end{document}
答案1
此行为不仅限于主题Hannover
,它涉及所有使用侧边栏的主题。要更改它,您必须修补\insertverticalnavigation
负责生成侧边栏导航的宏:
\documentclass{beamer}
\mode<presentation>{\usetheme{Hannover}}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\insertverticalnavigation}%
{\ifx\beamer@nav@css\beamer@hidetext{\usebeamertemplate{section in sidebar}}\else{\usebeamertemplate{section in sidebar shaded}}\fi}%
{{\usebeamertemplate{section in sidebar}}}{}{}
\makeatother
\begin{document}
\section{1}
\subsection{a}\frame{}
\subsection{b}\frame{}
\section{2}
\subsection{a}\frame{}
\subsection{b}\frame{}
\end{document}
ll. 4-9 中的代码将 的默认行为更改为beamer
始终突出显示当前部分(与形成对比的beamer
主题)- 通常情况下,仅当侧边栏中没有显示子部分时才会突出显示该部分,即如果您有。section in sidebar
section in sidebar shaded
\usetheme[hideallsubsections]{Hannover}